beldmit: (Default)
[personal profile] beldmit
Собственно, возвращаясь к посту про настоящего программиста. Там в комментах [livejournal.com profile] cmike высказал мнение, что Java - это такой нишевый язык.

Я задумался, и понял, что ниши для Java я не представляю. Возможно, сейчас не представляю - потому что уже есть C#.

Посему вопрос: какие задачи могут быть удачнее, чем на каком-либо другом языке, решены на чем-нибудь из списка: Java, Smalltalk, Haskell, Erlang? Меня устроит, если будет какой-то другой язык близкого класса, который это позволит сделать (кроме Java - там я хотел бы видеть четкие преимущества).

Желательно - чтобы с этими задачами было реально столкнуться на не сильно извилистом пути программиста (то есть если, чтобы к такой задаче подступиться, надо 15 лет учиться на микроэлектроника, то пример не канает).

Date: 2008-11-24 07:29 pm (UTC)
From: [identity profile] alexott.livejournal.com
Java - это сейчас такой нишевой язык для писания всяких веб-сервисов и порталов и т.п.
Ну SmallTalk - это совсем редкость, а вот Erlang & Haskell сейчас потянулись в гору. Первый в основном из-за своего масштабирования и ориентированности на сети

Date: 2008-11-24 07:38 pm (UTC)
From: [identity profile] beldmit.livejournal.com
Погоди. В чем тогда преимущество Java перед Perl или C#?

(no subject)

From: [personal profile] vitus_wagner - Date: 2008-11-24 07:43 pm (UTC) - Expand

(no subject)

From: [identity profile] dph.livejournal.com - Date: 2008-11-24 08:27 pm (UTC) - Expand

(no subject)

From: [identity profile] beldmit.livejournal.com - Date: 2008-11-25 08:13 am (UTC) - Expand

(no subject)

From: [identity profile] dph.livejournal.com - Date: 2008-11-25 10:24 am (UTC) - Expand

(no subject)

From: [identity profile] shaplov.livejournal.com - Date: 2008-11-26 06:13 am (UTC) - Expand

(no subject)

From: [identity profile] solom.livejournal.com - Date: 2008-12-01 08:23 pm (UTC) - Expand

(no subject)

From: [identity profile] dph.livejournal.com - Date: 2008-12-02 01:23 am (UTC) - Expand

(no subject)

From: [personal profile] arilou - Date: 2008-12-01 11:40 pm (UTC) - Expand

(no subject)

From: [identity profile] dph.livejournal.com - Date: 2008-12-02 01:29 am (UTC) - Expand

(no subject)

From: [identity profile] beldmit.livejournal.com - Date: 2008-12-02 12:37 pm (UTC) - Expand

(no subject)

From: [identity profile] dph.livejournal.com - Date: 2008-12-02 01:32 am (UTC) - Expand

(no subject)

From: [identity profile] dph.livejournal.com - Date: 2008-12-02 01:37 am (UTC) - Expand

(no subject)

From: [personal profile] arilou - Date: 2008-12-01 11:56 pm (UTC) - Expand

(no subject)

From: [identity profile] dph.livejournal.com - Date: 2008-12-02 01:44 am (UTC) - Expand

(no subject)

From: [personal profile] arilou - Date: 2008-12-02 04:45 am (UTC) - Expand

(no subject)

From: [identity profile] alexott.livejournal.com - Date: 2008-11-25 09:09 am (UTC) - Expand

Date: 2008-11-24 07:47 pm (UTC)
vitus_wagner: My photo 2005 (Default)
From: [personal profile] vitus_wagner
Ниша для Java - это тупые мобильные телефоны. Вот на J2ME действительно получается неплохие вещи писать. Почему-то на них Java не жрет гигабайты и гигагерцы как свинья. Ниша для Erlang - коммутаторы для этих самых телефонов. Не исключено что jabber и другие IM-протоколы, где текста мало, а коммутации - много, тоже хорошо делаются на Erlang. Недаром ejabberd так популярен.

Нaskell - это для задач, требующих определённым образом заточенных мозгов.

SmallTalk вообще-то хорош для GUI. Но поскольку GUI обычно должны интегрироваться в окружающий десктоп, а окружающие десктопы написаны не на SmallTalk, популярен он мало.

Date: 2008-11-24 08:50 pm (UTC)
From: [identity profile] beldmit.livejournal.com
Про Erlang, допустим, понял.

Gmail-клиент, написанный на Java, мегагерцы и мегабайты может и не жрет, но грузится за 2-3 минуты на моей Nokia E61i.

Про Haskell - это, извини, не ответ.

Про Smalltalk - а почему, собственно, Tk пофиг, на чем написан десктоп, а Smalltalk-у нет? Или что тогда значит "интегрироваться"?

(no subject)

From: [personal profile] vitus_wagner - Date: 2008-11-24 10:01 pm (UTC) - Expand

Date: 2008-11-24 07:51 pm (UTC)
arilou: (Default)
From: [personal profile] arilou
А C# уже мультиплатформенный? Или по принципу "а у кого немикрософт - тот сам виноват"?

Date: 2008-11-24 07:57 pm (UTC)
From: [identity profile] beldmit.livejournal.com
Ну, для сервера это плюс-минус пофиг, сам понимаешь. А вообще-то есть Mono.

(no subject)

From: [identity profile] dph.livejournal.com - Date: 2008-11-24 08:28 pm (UTC) - Expand

Да

From: [identity profile] cmike.livejournal.com - Date: 2008-11-25 09:59 am (UTC) - Expand

(no subject)

From: [personal profile] arilou - Date: 2008-11-24 09:02 pm (UTC) - Expand

(no subject)

From: [identity profile] beldmit.livejournal.com - Date: 2008-11-25 09:28 am (UTC) - Expand

(no subject)

From: [identity profile] mcfirst.livejournal.com - Date: 2008-11-27 03:54 pm (UTC) - Expand

(no subject)

From: [identity profile] beldmit.livejournal.com - Date: 2008-11-27 08:42 pm (UTC) - Expand

Date: 2008-11-24 08:02 pm (UTC)
From: [identity profile] dimas.livejournal.com
Ну, до многоплатформенности (не только под "большой" лялих и чего там еще есть Моно?) явы си шарпу еще ползти и ползти ...

В том числе гуёвых приложений ...

Только вот боюсь куча имеющихся сложных проблем от того, что "сделайте программу, которой сможет пользоваться полный Х, и только он будет её пользоваться", ну и от стандартного заблуждения, что "пользовательский интерфейс - это просто, любой джуниор справится" ...

Date: 2008-11-24 08:04 pm (UTC)
From: [identity profile] beldmit.livejournal.com
Я так подозреваю, что проблему гуерисования надо решать средой, а не языком, привешенным к этой среде.

(no subject)

From: [identity profile] dimas.livejournal.com - Date: 2008-11-24 08:24 pm (UTC) - Expand

(no subject)

From: [identity profile] dph.livejournal.com - Date: 2008-11-24 08:36 pm (UTC) - Expand

(no subject)

From: [identity profile] dimas.livejournal.com - Date: 2008-11-24 10:14 pm (UTC) - Expand

(no subject)

From: [identity profile] dimas.livejournal.com - Date: 2008-11-25 04:02 pm (UTC) - Expand

(no subject)

From: [identity profile] dph.livejournal.com - Date: 2008-11-26 12:27 am (UTC) - Expand

(no subject)

From: [personal profile] vitus_wagner - Date: 2008-11-24 10:04 pm (UTC) - Expand

(no subject)

From: [identity profile] beldmit.livejournal.com - Date: 2008-11-25 08:14 am (UTC) - Expand

(no subject)

From: [personal profile] vitus_wagner - Date: 2008-11-25 10:20 am (UTC) - Expand

(no subject)

From: [identity profile] beldmit.livejournal.com - Date: 2008-11-26 07:22 pm (UTC) - Expand

(no subject)

From: [personal profile] vitus_wagner - Date: 2008-11-27 05:51 am (UTC) - Expand

(no subject)

From: [identity profile] beldmit.livejournal.com - Date: 2008-11-27 07:45 am (UTC) - Expand

(no subject)

From: [identity profile] cmike.livejournal.com - Date: 2008-11-25 10:04 am (UTC) - Expand

(no subject)

From: [personal profile] vitus_wagner - Date: 2008-11-25 10:22 am (UTC) - Expand

(no subject)

From: [identity profile] cmike.livejournal.com - Date: 2008-11-25 05:33 pm (UTC) - Expand

Апичатка

From: [identity profile] cmike.livejournal.com - Date: 2008-11-25 05:48 pm (UTC) - Expand

(no subject)

From: [personal profile] vitus_wagner - Date: 2008-11-25 06:57 pm (UTC) - Expand

(no subject)

From: [identity profile] cmike.livejournal.com - Date: 2008-11-25 08:24 pm (UTC) - Expand

Date: 2008-11-24 08:21 pm (UTC)
From: [identity profile] yakov-sirotkin.livejournal.com
Ниша Java - это бизнес-приложения: банки, торговля, логистика, бухгалтерия и всё такое. Конечно, C# конкурирует с Java в лоб, но программировать на C# и не дружить с Майкрософт - это большое извращение, а дружить с Майкрософт - не все хотят.

Date: 2008-11-24 08:38 pm (UTC)
From: [identity profile] dph.livejournal.com
Да как-то не заметно, что конкурирует.
Насколько я вижу, C# занял нишу Дельфи - то есть клиент-серверных приложений. Т.е. если и конкурирует, то только с Java EJB, причем C# тут изначально не в лучших условиях (как среда).

Date: 2008-11-24 08:32 pm (UTC)
From: [identity profile] dph.livejournal.com
Основной плюс Java - это простой язык. Т.е. код, написанный даже каким-нибудь "индусом" (или вчерашним перлистом) можно таки разобрать и отрефакторить за разумное время. Более того, его можно поддерживать даже без рефакторинга (по крайней мере у Яши получается).
Собственно, из этого и вылезает ниша - все приложения, для которых стоимость поддержки существенна. Т.е. весть корпоративный сектор, веб-сервисы и все, что живет долго и меняется часто-часто.

Как ни странно, Eclipse RCP сейчас - один из лучших способов делать GUI, причем даже под Win результат выглядит вполне нативным и быстрым. С# пока еще нормального RCP не получил, насколько я знаю.

Date: 2008-11-24 08:34 pm (UTC)
From: [identity profile] dph.livejournal.com
Ну и сейчас Java - самый быстрый из медленных языков ;) Т.е. если задача не требует совсем уж жесткой оптимизации под Fortran или C, но производительность имеет значение - лучше брать Java.
Кстати, по слухам, Fortran уже потихоньку вытесняется Java в научных исследованиях.

Date: 2008-11-25 05:47 am (UTC)
From: [identity profile] a-quantum.livejournal.com
Fortran уже потихоньку вытесняется Java в научных исследованиях

Фортран весьма заметно вытесняется Матлабом (последние версии которого, по слухам, написаны на Джаве).

Date: 2008-12-02 12:00 am (UTC)
arilou: (Default)
From: [personal profile] arilou
Его-таки научились делать быстрым?
Не знал ещё.
Мои устаревшие сведения были таковы, что нормальную скорость Java показывает только в родных условиях - на Sun'ах. Впрочем, сведения и в самом деле давние.

(no subject)

From: [identity profile] dph.livejournal.com - Date: 2008-12-02 01:22 am (UTC) - Expand

Date: 2008-11-24 08:53 pm (UTC)
From: [identity profile] city-rat.livejournal.com
Я вот завтра понесу показывать заказчику портал. Инета унутре конторы у заказчика нету - он режимный, так что тащить для показа надо всю систему, а не клиента. Корневой портал будет работать на машине под aix, сиблинги - хрен знает на чем, в основном - линукс. Винды там не будет на серверах НИКОГДА, потому что заказчик - ослеп, а не е.. режимный.

А я вот покажусь завтра на ноуте под виндовс.

C#, говорите?

Ах да, это потом еще и суппортить надо, развивать. Кроме того, мы это ядро портальное уже три года довольно успешно запихиваем во все проекты. Perl, говорите?

Date: 2008-11-25 08:16 am (UTC)
From: [identity profile] beldmit.livejournal.com
Тут обосновал.

Саппортить - зависит от архитектуры все-таки, а не от языка?

(no subject)

From: [personal profile] vitus_wagner - Date: 2008-11-25 10:26 am (UTC) - Expand

(no subject)

From: [identity profile] dph.livejournal.com - Date: 2008-11-26 12:19 am (UTC) - Expand

(no subject)

From: [identity profile] city-rat.livejournal.com - Date: 2008-11-26 10:48 am (UTC) - Expand

(no subject)

From: [identity profile] beldmit.livejournal.com - Date: 2008-11-26 07:24 pm (UTC) - Expand

(no subject)

From: [personal profile] arilou - Date: 2008-12-02 12:12 am (UTC) - Expand

(no subject)

From: [identity profile] dph.livejournal.com - Date: 2008-12-02 01:56 am (UTC) - Expand

(no subject)

From: [identity profile] beldmit.livejournal.com - Date: 2008-12-02 06:15 am (UTC) - Expand

Date: 2008-11-24 10:54 pm (UTC)
From: [identity profile] dimrub.livejournal.com
Не понимаю, а в чем принципиальная разница между Java и C#?

Посему вопрос: какие задачи могут быть удачнее, чем на каком-либо другом языке, решены на чем-нибудь из списка: Java, Smalltalk, Haskell, Erlang?

Говорят, на хаскелле очень удобно писать парсеры, а на эрланге - сильно распаралелленные вычисления (в том числе, тестовые клиенты для сетевых протоколов). Но видеть в одном списке Хаскель и Яву мне несколько странно.

Date: 2008-11-25 08:16 am (UTC)
From: [identity profile] beldmit.livejournal.com
Я перечислил все языки, которым мне в окрестности пели дифирамбы наиболее громко. За исключением питона, к которому я отношусь с подозрением.

(no subject)

From: [identity profile] dimrub.livejournal.com - Date: 2008-11-25 08:19 am (UTC) - Expand

(no subject)

From: [identity profile] beldmit.livejournal.com - Date: 2008-11-25 08:19 am (UTC) - Expand

(no subject)

From: [identity profile] dimrub.livejournal.com - Date: 2008-11-25 08:20 am (UTC) - Expand

(no subject)

From: [personal profile] vitus_wagner - Date: 2008-11-25 10:28 am (UTC) - Expand

(no subject)

From: [identity profile] dimrub.livejournal.com - Date: 2008-11-25 10:32 am (UTC) - Expand

(no subject)

From: [personal profile] vitus_wagner - Date: 2008-11-25 10:36 am (UTC) - Expand

(no subject)

From: [identity profile] dimrub.livejournal.com - Date: 2008-11-25 11:00 am (UTC) - Expand

(no subject)

From: [personal profile] vitus_wagner - Date: 2008-11-25 11:12 am (UTC) - Expand

(no subject)

From: [identity profile] beldmit.livejournal.com - Date: 2008-11-25 11:24 am (UTC) - Expand

(no subject)

From: [personal profile] vitus_wagner - Date: 2008-11-25 11:58 am (UTC) - Expand

(no subject)

From: [identity profile] beldmit.livejournal.com - Date: 2008-11-25 12:14 pm (UTC) - Expand

(no subject)

From: [personal profile] vitus_wagner - Date: 2008-11-25 12:35 pm (UTC) - Expand

Date: 2008-11-24 10:56 pm (UTC)
From: [identity profile] gornal.livejournal.com
Java - переносимые GUI приложения.

Date: 2008-11-25 08:17 am (UTC)
From: [identity profile] beldmit.livejournal.com
Ну это вроде совсем не аргумент. Есть Tk (куча языков), есть Qt.

(no subject)

From: [identity profile] gornal.livejournal.com - Date: 2008-11-25 08:23 am (UTC) - Expand

(no subject)

From: [identity profile] beldmit.livejournal.com - Date: 2008-11-25 08:28 am (UTC) - Expand

(no subject)

From: [identity profile] gornal.livejournal.com - Date: 2008-11-25 08:36 am (UTC) - Expand

(no subject)

From: [identity profile] beldmit.livejournal.com - Date: 2008-11-25 09:27 am (UTC) - Expand

(no subject)

From: [identity profile] gornal.livejournal.com - Date: 2008-11-25 09:33 am (UTC) - Expand

(no subject)

From: [identity profile] beldmit.livejournal.com - Date: 2008-11-25 09:34 am (UTC) - Expand

(no subject)

From: [identity profile] gornal.livejournal.com - Date: 2008-11-25 09:35 am (UTC) - Expand

(no subject)

From: [identity profile] beldmit.livejournal.com - Date: 2008-11-25 11:25 am (UTC) - Expand

(no subject)

From: [identity profile] gornal.livejournal.com - Date: 2008-11-25 11:36 am (UTC) - Expand

Date: 2008-11-25 08:54 am (UTC)
yurikhan: (Default)
From: [personal profile] yurikhan

О да. Мой любимый пример, админка биллинга NetUp UTM5 для провайдеров. На Linux’е у неё не выпадают календарики ввода дат. И даже в винде они не управляются с клавиатуры. И поля ввода текста не выделяют всё содержимое при получении фокуса.

Java — это переносимые GUI-приложения, которые нигде не выглядят по-родному и теряют переносимость сразу, как только стандартной библиотеки виджетов перестанет хватать.

(no subject)

From: [identity profile] mcfirst.livejournal.com - Date: 2008-11-27 04:03 pm (UTC) - Expand

(no subject)

From: [identity profile] beldmit.livejournal.com - Date: 2008-11-27 08:19 pm (UTC) - Expand

(no subject)

From: [identity profile] mcfirst.livejournal.com - Date: 2008-11-27 04:00 pm (UTC) - Expand

Date: 2008-11-25 12:29 am (UTC)
From: [identity profile] dmih.livejournal.com
Паскаль - нишевый язык для преподавания на бумаге в школах в глубинке.

Date: 2008-11-25 08:12 am (UTC)
From: [identity profile] beldmit.livejournal.com
Вирт его вроде так и позиционировал.

(no subject)

From: [personal profile] arilou - Date: 2008-11-25 03:17 pm (UTC) - Expand

Date: 2008-11-25 11:46 am (UTC)
From: (Anonymous)
Дима - когда ты пишешь для бд у тебя нет выбора...
+ когда ты пишешь всякий системно-смешной софт - у тебя нет выбора...
+ когда ты пишешь бизнес-ориентированный софт - у тебя есть выбор между очень странными языками и java... и у тебя нет выбора...

а c# - ну и где он нужен? ну и где он живьем используется? даже в виндовых игрушках - и то, java...

Gor
P.S. ты не мог бы зарегистрировать меня на
http://rblaze.livejournal.com/628095.html
?

Date: 2008-11-25 11:52 am (UTC)
From: [identity profile] beldmit.livejournal.com
Что такое системно-смешной софт, я не знаю.
К базам сейчас можно цепляться на 10 языках как минимум.

Про бизнес-ориентированный софт - а ты, собственно, про что? Про аналитику кризиса (K++)? Там-то как раз выбор есть, насколько я знаю.

Тебя зарегистрировал.

(no subject)

From: [identity profile] dph.livejournal.com - Date: 2008-11-26 12:22 am (UTC) - Expand

(no subject)

From: (Anonymous) - Date: 2008-11-26 11:02 am (UTC) - Expand

(no subject)

From: [identity profile] beldmit.livejournal.com - Date: 2008-11-26 12:48 pm (UTC) - Expand

Date: 2008-11-27 03:56 pm (UTC)
From: [identity profile] mcfirst.livejournal.com
Как недавно попавший в пространство ГИСов, могу добавить - практически все опен-сорсовое, что сейчас есть, сделано либо на unmanaged языках, либо на Java. Причем на Java существуют уникальные проекты, которые спортированы в native.

P.S. Ну, не считая НАСАвского WorldWind'а. И то они его на Java портируют.

Date: 2008-12-15 12:41 pm (UTC)
From: [identity profile] behrk.livejournal.com
Отвечу за Smalltalk.

Для меня Smalltalk -- это прежде всего язык экспериментальной разработки, exploratory programming. Т.е. я люблю решать на нём задачи вида "сделай то, не знаю, что".

Пример: вот хочу сделать необычную визуализацию для данных, лежащих в файле не вполне известного мне формата. Допустим, я знаю структуры, в которых лежат данные в файле, но не вполне понимаю семантику полей этих структур в пограничных случаях. И вот, я описываю эти структуры и пишу однострочник, который считывает содержимое файла. Дальше некоторое время лазаю по нему инспектором, иногда делая выборки, свертки и проч.

Потом я пишу опять-таки однострочник, который прямо на графическом контексте текущего окна рисует какие-то графики. Экспериментирую, подбираю, развлекаюсь. И когда, наконец, результат начинает меня удовлетворять, завожу класс и сваливаю мои однострочники в его методы.

Другой пример -- создать COM-объект и начать дергать его за разные методы, чтобы понять, как он себя ведет. Естественно, в процессе всё часто рушится или приходит в неправильное состояние, но при соблюдении минимальной аккуратности у меня всегда имеется на руках код, выполнив который после перезапуска я воспроизведу то состояние, с которым работаю.

Date: 2008-12-15 12:54 pm (UTC)
From: [identity profile] beldmit.livejournal.com
Хорошо. То есть ниша Quick-and-Dirty языка? Или что?

Profile

beldmit: (Default)
Dmitry Belyavskiy

December 2025

S M T W T F S
 123456
78910111213
14151617181920
2122 2324252627
28 29 3031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 9th, 2026 11:51 pm
Powered by Dreamwidth Studios