(no subject)
Nov. 24th, 2008 10:01 pmСобственно, возвращаясь к посту про настоящего программиста. Там в комментах
cmike высказал мнение, что Java - это такой нишевый язык.
Я задумался, и понял, что ниши для Java я не представляю. Возможно, сейчас не представляю - потому что уже есть C#.
Посему вопрос: какие задачи могут быть удачнее, чем на каком-либо другом языке, решены на чем-нибудь из списка: Java, Smalltalk, Haskell, Erlang? Меня устроит, если будет какой-то другой язык близкого класса, который это позволит сделать (кроме Java - там я хотел бы видеть четкие преимущества).
Желательно - чтобы с этими задачами было реально столкнуться на не сильно извилистом пути программиста (то есть если, чтобы к такой задаче подступиться, надо 15 лет учиться на микроэлектроника, то пример не канает).
Я задумался, и понял, что ниши для Java я не представляю. Возможно, сейчас не представляю - потому что уже есть C#.
Посему вопрос: какие задачи могут быть удачнее, чем на каком-либо другом языке, решены на чем-нибудь из списка: Java, Smalltalk, Haskell, Erlang? Меня устроит, если будет какой-то другой язык близкого класса, который это позволит сделать (кроме Java - там я хотел бы видеть четкие преимущества).
Желательно - чтобы с этими задачами было реально столкнуться на не сильно извилистом пути программиста (то есть если, чтобы к такой задаче подступиться, надо 15 лет учиться на микроэлектроника, то пример не канает).
no subject
Date: 2008-11-24 07:29 pm (UTC)Ну SmallTalk - это совсем редкость, а вот Erlang & Haskell сейчас потянулись в гору. Первый в основном из-за своего масштабирования и ориентированности на сети
no subject
Date: 2008-11-24 07:38 pm (UTC)no subject
Date: 2008-11-24 07:43 pm (UTC)no subject
Date: 2008-11-24 07:47 pm (UTC)Нaskell - это для задач, требующих определённым образом заточенных мозгов.
SmallTalk вообще-то хорош для GUI. Но поскольку GUI обычно должны интегрироваться в окружающий десктоп, а окружающие десктопы написаны не на SmallTalk, популярен он мало.
no subject
Date: 2008-11-24 07:51 pm (UTC)no subject
Date: 2008-11-24 07:57 pm (UTC)no subject
Date: 2008-11-24 08:02 pm (UTC)В том числе гуёвых приложений ...
Только вот боюсь куча имеющихся сложных проблем от того, что "сделайте программу, которой сможет пользоваться полный Х, и только он будет её пользоваться", ну и от стандартного заблуждения, что "пользовательский интерфейс - это просто, любой джуниор справится" ...
no subject
Date: 2008-11-24 08:04 pm (UTC)no subject
Date: 2008-11-24 08:21 pm (UTC)no subject
Date: 2008-11-24 08:24 pm (UTC)Язык (точнее его возможности) достаточно влияет на возможности ... Как компактности, так и читабельности/поддерживаемости кода ... Вспомни первые MFC или OWL ...
Как раз обычно больше говён я видел от "нарисованного в дизайнере", чем закодированного ... А уж как это выглядело, когда надо было какой-то кусок заюзать в еще одном месте ... А с той же Qt-кой я просто влегкую делал класс-биг-виджет и просто вставлял его в другом месте ...
Кстати, вот думаю, не поразвлекаться что ли на PyQt ...
no subject
Date: 2008-11-24 08:27 pm (UTC)Код на Perl в 90% случаев уже не поддерживается никак.
Да и быстрее Java раза в полтора, насколько я помню.
Перед C#
Во-первых, С# application ты сможешь запустить только под Win, что для серверных приложений недопустимо в большинстве случаев (mono для production еще сыровата и будет, похоже, такой всегда).
Во-вторых, C#, увы, перетащил с собой весь стиль разработки от MS. И это, увы, ужасно. Только человек, закаленный VC, может жить с C#, как мне кажется.
Ну и в третьих, C# - сложнее, что для значительной части реальной жизни - большой минус ;)
no subject
Date: 2008-11-24 08:28 pm (UTC)Ну а mono - увы, не для production.
no subject
Date: 2008-11-24 08:32 pm (UTC)Собственно, из этого и вылезает ниша - все приложения, для которых стоимость поддержки существенна. Т.е. весть корпоративный сектор, веб-сервисы и все, что живет долго и меняется часто-часто.
Как ни странно, Eclipse RCP сейчас - один из лучших способов делать GUI, причем даже под Win результат выглядит вполне нативным и быстрым. С# пока еще нормального RCP не получил, насколько я знаю.
no subject
Date: 2008-11-24 08:34 pm (UTC)Кстати, по слухам, Fortran уже потихоньку вытесняется Java в научных исследованиях.
no subject
Date: 2008-11-24 08:36 pm (UTC)no subject
Date: 2008-11-24 08:38 pm (UTC)Насколько я вижу, C# занял нишу Дельфи - то есть клиент-серверных приложений. Т.е. если и конкурирует, то только с Java EJB, причем C# тут изначально не в лучших условиях (как среда).
no subject
Date: 2008-11-24 08:50 pm (UTC)Gmail-клиент, написанный на Java, мегагерцы и мегабайты может и не жрет, но грузится за 2-3 минуты на моей Nokia E61i.
Про Haskell - это, извини, не ответ.
Про Smalltalk - а почему, собственно, Tk пофиг, на чем написан десктоп, а Smalltalk-у нет? Или что тогда значит "интегрироваться"?
no subject
Date: 2008-11-24 08:53 pm (UTC)ослеп, а не е..режимный.А я вот покажусь завтра на ноуте под виндовс.
C#, говорите?
Ах да, это потом еще и суппортить надо, развивать. Кроме того, мы это ядро портальное уже три года довольно успешно запихиваем во все проекты. Perl, говорите?
no subject
Date: 2008-11-24 09:02 pm (UTC)Джава - это же не только серверная сторона, и не только веб-клиенты, это ещё и всякие мобилки, и наверняка ещё что-то, про что я не в курсе, потому что джаву не курю. :)
Си-диез вроде бы не перекрывает это всё?
no subject
Date: 2008-11-24 10:01 pm (UTC)Дима, Е61 это слишком умный телефон для Java. Java можно использовать на телефонах не сложнее S40. А E61 - это уже Symbian. Это полноценная ОС, там Java не место.
На самом деле Tk это примерно столь же нишевой продукт, сколь и smalltalk. Но мы тут не про тулкиты, а про языки. Tcl как язык заточен на существование в окружении, где есть какой-то внешний мир - файловые системы, базы данных etc. А идеология Smalltalk подразумевает что виртуальная машина smalltalk совпадает с физической.
У Erlang эта проблема тоже есть, но на сотовых коммутаторах она некритична. Там это предположение - правда.
no subject
Date: 2008-11-24 10:04 pm (UTC)Её надо решать исключительно мозгами. Созданием адекватного этой проблеме понятийного аппарата и поддержкой его в языке. Все проблемы GUI на мейнстримовых языках происходят именно потому что у ПРОГРАММИСТА нет понятийного аппарата чтобы думать про GUI. Поэтому все GUI - непродуманные. Вот у смоллтолкеров кое-какие наметки на эту тему есть.
Думать же на уровне образов человек в принципе не в состоянии. Не заточены у него мозги для этого. Думать можно только "в терминах".
no subject
Date: 2008-11-24 10:14 pm (UTC)Для явы, кстати, вроде тоже вариант есть, только не помню, платный или как, надо смотреть на trolltech.com.
no subject
Date: 2008-11-24 10:54 pm (UTC)Говорят, на хаскелле очень удобно писать парсеры, а на эрланге - сильно распаралелленные вычисления (в том числе, тестовые клиенты для сетевых протоколов). Но видеть в одном списке Хаскель и Яву мне несколько странно.
no subject
Date: 2008-11-24 10:56 pm (UTC)no subject
Date: 2008-11-25 12:29 am (UTC)