(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-12-01 11:40 pm (UTC)Нам ведь надо не просто прочитать (распознать последовательность букв и знаков, сложив из них слова и предложения), а ещё и понять, что код делает.
"Минимальность концепций и парадигм" я бы скорее отнёс к минусам. Прокрустово ложе. От языка требуется, чтобы на нём можно было удобно выразить идею, а не выдумывать, как подогнать идею под ограничения языка.
Про "специальные и нетривиальные усилия для написания поддерживаемого кода" на perl я с тобой не согласен. Ну т.е. специальные - может быть, но либо это тот уровень, который как-то на автомате получается, либо и на Java так же писать ничуть не сложнее. Не зная, какие требования к коду ты имеешь ввиду, мне сложно понять.
Да, одна из моих претензий к Java - чрезмерная многословность. Простые элементарные операции должны выражаться простыми краткими конструкциями.
Впрочем "код, написанный очень средним программистом" - боюсь, уже не совсем то, о чём стоит так сильно беспокоиться. Хотя, может быть, это и есть ниша для Java - "язык для очень средних программистов"?
no subject
Date: 2008-12-02 01:29 am (UTC)Вообще, что-бы в код не пробирался бардак - требуется куча усилий на всех уровнях. Так оно, увы, не бывает.
В тех системах, что я видел - код всегда писался кучей очень разных людей, многие модули вообще написаны студентами, а некоторые - были отданы на аутсорсинг без контроля качества. А уж о постоянном архитектурном надзоре никто и не говорил.
Собственно, у нас с тобой очень разные позиции. Ты исходишь с позиции разработчика - тебе нужно, что бы на языке было просто выражать свои мысли. Я уже давно - с позиции team lead и мне важнее читаемость плохого кода, простота интеграции разных модулей и т.п. Т.е. для меня простота, многословность, излишний контроль и т.п. - гораздо важнее гибкости и лаконичности.
Поэтому и говорю, что из моей позиции (а я склонен думать, что она гораздо ближе к массовому производству) java - гораздо лучше, нежели perl.
no subject
Date: 2008-12-02 12:37 pm (UTC)no subject
Date: 2008-12-02 01:32 am (UTC)no subject
Date: 2008-12-02 01:37 am (UTC)Хм. Хороший программист выберет себе язык под конкретную задачу - и поэтому говорить о языке для хорошего программиста не имеет смысла. Java - очень хороший язык для тех случаев, когда нужно выбрать один и только один язык для проекта.
Увы, команды, позволяющая использовать эффективно много разных языков встречаются крайне редко (я, например, не видел именно команды, все сотрудники которой могли бы легко переключаться между erlang, c, java, lisp - а это, наверно, минимальный набор "классов языков" для сложного проекта).