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

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

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

Желательно - чтобы с этими задачами было реально столкнуться на не сильно извилистом пути программиста (то есть если, чтобы к такой задаче подступиться, надо 15 лет учиться на микроэлектроника, то пример не канает).
Page 1 of 5 << [1] [2] [3] [4] [5] >>

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#?

Date: 2008-11-24 07:43 pm (UTC)
vitus_wagner: My photo 2005 (Default)
From: [personal profile] vitus_wagner
Перед C# - в объемах наработанных библиотек и фреймворков. Перед perl - в том, что существует штатный способ распространять объектники без исходников.

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 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.

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
Я так подозреваю, что проблему гуерисования надо решать средой, а не языком, привешенным к этой среде.

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

Date: 2008-11-24 08:24 pm (UTC)
From: [identity profile] dimas.livejournal.com
Ой, да при чем тут среда?

Язык (точнее его возможности) достаточно влияет на возможности ... Как компактности, так и читабельности/поддерживаемости кода ... Вспомни первые MFC или OWL ...

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

Кстати, вот думаю, не поразвлекаться что ли на PyQt ...

Date: 2008-11-24 08:27 pm (UTC)
From: [identity profile] dph.livejournal.com
Перед Perl - код на Java (даже написанный индусами) можно поддерживать.
Код на Perl в 90% случаев уже не поддерживается никак.
Да и быстрее Java раза в полтора, насколько я помню.


Перед C#
Во-первых, С# application ты сможешь запустить только под Win, что для серверных приложений недопустимо в большинстве случаев (mono для production еще сыровата и будет, похоже, такой всегда).
Во-вторых, C#, увы, перетащил с собой весь стиль разработки от MS. И это, увы, ужасно. Только человек, закаленный VC, может жить с C#, как мне кажется.
Ну и в третьих, C# - сложнее, что для значительной части реальной жизни - большой минус ;)

Date: 2008-11-24 08:28 pm (UTC)
From: [identity profile] dph.livejournal.com
Для сервера как раз не пофиг, стоимость сервера под Win - очень и очень существенна. Да и на каком-нибудь T2 никаких Win нет и не будет.
Ну а mono - увы, не для production.

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-24 08:36 pm (UTC)
From: [identity profile] dph.livejournal.com
О, а PyQt есть для Jython? А то это может быть забавный вариант :)

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

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-у нет? Или что тогда значит "интегрироваться"?

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

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

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

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

Date: 2008-11-24 09:02 pm (UTC)
arilou: (Default)
From: [personal profile] arilou
Что есть моно - я не в курсе (да, да, гугль и вики подождут, а я сейчас домой бегу, там может гляну).
Джава - это же не только серверная сторона, и не только веб-клиенты, это ещё и всякие мобилки, и наверняка ещё что-то, про что я не в курсе, потому что джаву не курю. :)
Си-диез вроде бы не перекрывает это всё?

Date: 2008-11-24 10:01 pm (UTC)
vitus_wagner: My photo 2005 (Default)
From: [personal profile] vitus_wagner
Gmail-клиент, написанный на Java, мегагерцы и мегабайты может и не жрет, но грузится за 2-3 минуты на моей Nokia E61i.
Дима, Е61 это слишком умный телефон для Java. Java можно использовать на телефонах не сложнее S40. А E61 - это уже Symbian. Это полноценная ОС, там Java не место.

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

На самом деле Tk это примерно столь же нишевой продукт, сколь и smalltalk. Но мы тут не про тулкиты, а про языки. Tcl как язык заточен на существование в окружении, где есть какой-то внешний мир - файловые системы, базы данных etc. А идеология Smalltalk подразумевает что виртуальная машина smalltalk совпадает с физической.

У Erlang эта проблема тоже есть, но на сотовых коммутаторах она некритична. Там это предположение - правда.


Date: 2008-11-24 10:04 pm (UTC)
vitus_wagner: My photo 2005 (Default)
From: [personal profile] vitus_wagner
Проблему гуерисования ни в коем случае нельзя решать средой.
Её надо решать исключительно мозгами. Созданием адекватного этой проблеме понятийного аппарата и поддержкой его в языке. Все проблемы GUI на мейнстримовых языках происходят именно потому что у ПРОГРАММИСТА нет понятийного аппарата чтобы думать про GUI. Поэтому все GUI - непродуманные. Вот у смоллтолкеров кое-какие наметки на эту тему есть.

Думать же на уровне образов человек в принципе не в состоянии. Не заточены у него мозги для этого. Думать можно только "в терминах".

Date: 2008-11-24 10:14 pm (UTC)
From: [identity profile] dimas.livejournal.com
В смысле для Питона? Ага, есть. И по мне - ну очень красиво, прям как С++ код :) На Хабре был уже ряд статей с примерами ...

Для явы, кстати, вроде тоже вариант есть, только не помню, платный или как, надо смотреть на trolltech.com.

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

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

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

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

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

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. 10th, 2026 04:36 pm
Powered by Dreamwidth Studios