2010-06-23 2 views
1

В настоящее время я оцениваю, какие строго типизированные серверные языки я мог бы выбрать, чтобы узнать следующее. Я прихожу с фона в основном php development (oop). Я смотрю на сильно типизированные языки, поскольку считаю это серьезным недостатком PHP (а иногда и вверх).Какие строго типизированные языки следует учитывать для моего следующего языка разработки?

Я знаю, что C# и Java (JSP/Servlets) являются опцией, однако я хотел рассмотреть другие языки, которые я еще не исследовал.

Я в основном смотрю на это из карьеры POV, поэтому нет смысла собирать язык, который умирает или пользуется низким спросом (сейчас или в будущем).

+0

Вы действительно имеете в виду строго типизированный или статически типизированный? – sepp2k

ответ

1

Вы имеете в виду статически типизированные языки (проверено во время компиляции)? Если это так, C# или Java действительно, вероятно, ваши лучшие ставки для широко используемых серверных языков. Языки, такие как Python и Ruby, строго типизированы, но они динамичны, как PHP.

http://en.wikipedia.org/wiki/Type_system

http://en.wikipedia.org/wiki/Strongly_typed_programming_language

1

Во-первых, стоит избегать использования "строго типизированных" большинство людей поняли этот термин. (Я лично отказываюсь дать ему смысл)

Я предполагаю, что вы говорите о языке статического типа, а не о динамическом языке.

Я могу понять из вашего фона с php, что вы хотите наклонить язык статического типа, но имейте в виду, что php - это самый плохой язык динамического типа, который я когда-либо видел.

Я бы сказал, что если вы знаете C#, Java, которого достаточно. IMHO изучение языка для карьеры POV - это не то, что улучшит ваши навыки в PL. Это потому, что большинство отраслей не знают, какой язык выбрать в другом, чтобы выразить лучшие проблемы. Таким образом, есть выбор языковой базы на то, что использовали другие конкуренты. [1]

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

Поэтому я могу ответить на какой язык, улучшая навыки программирования (LISP (DT), Smalltalk (DT), схема (DT), ML (ST), Haskell (ST), Prolog (DT), C (ST) , Self (DT)).

ДТ: Динамически типа, ST: Статический тип

[1] http://www.paulgraham.com/avg.html

+2

Я бы сказал, что изучение нового языка полезно на нескольких фронтах, даже если нет зарплаты для работы: 1) это интеллектуальное упражнение, хорошо для ума в целом. 2) если ОП скучно, это один из способов удержать интерес, чтобы пережить скуку.3) у каждого языка есть своя точка зрения, и воздействие большего количества способов думать о проблеме будет иметь преимущества, даже если он останется с C#/Java. – DaveE

+0

Да, это моя точка зрения, но если вы изучите C#, вы не получите машу, изучая Java и другие основные языки. Вы получаете много, узнав, что я называю проводным языком. – mathk

3

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

Пойдите для этого, я бы сказал.