2013-05-30 6 views
4

Хотелось бы узнать, какие отрицательные моменты/минусы/плохие/ограничивают ситуацию с языком F # (резким).Каковы некоторые отрицательные моменты/минусы/недостатки/ограничения относительно языка программирования F # (sharp)?

Я искал на Google:

  • е ограничения острых языка
  • е острые минусы языка
  • е острый язык отрицательные моменты
  • фа диез языка плохие вещи

И никакого результата. Вот почему вы спрашиваете об этом здесь.

Целью этого вопроса является не выбирать мой следующий язык для изучения, а сделать документ для моей школы о языке f #. Но я не могу найти никаких отрицательных моментов.

+0

Это читается как вопрос о горилле против акулы (http://blog.stackoverflow.com/2011/08/gorilla-vs-shark/) –

+0

Я не могу найти что-нибудь плохое в Интернете, почему ? Я прошу настоящую помощь, а не шучу ... –

+0

@Totty Потому что «хорошие» и «плохие» обычно очень субъективны и зависят от предпочтений и опыта человека. Мало (ни к чему) каждого языка не может быть доказано (по математике или тесту) плохо или контрпродуктивно. – Euphoric

ответ

6
  • Для некоторых людей, как правило, новички на языке, мощный логический вывод типа может быть offputting
    • Это может показаться, что язык является динамичным и, следовательно, не идут с теми же гарантиями, что вы ожидаете от статически типизированный язык. Однако на самом деле это совершенно наоборот, так как F # с его наследием ML более статически корректен, чем многие традиционные статические языки.
    • Некоторые люди считают, что отсутствие аннотаций типа иногда может сделать код менее читаемым, особенно если у вас нет доступа к редактору, который может выделить для вас предполагаемые типы. Хорошим примером этого является просмотр кода или просто просмотр кода других людей на github.
  • По сравнению с его .NET-братьями C# в нем нет большого количества инструментов. Даже простой рефакторинг не очень хорошо работает в Visual Studio. Работа с графическими интерфейсами также не поддерживается, так как вы не можете работать с файлами XAML так же, как вы можете в C#
  • F # отсутствует поддержка функторов, это не очень большая проблема, но это то, что люди из OCaml могут пропустить , для получения дополнительной информации см. это question.
+0

спасибо за ваш ответ, ML: означает метаязык или язык программирования ML? –

+0

Здесь говорится, что есть аннотации типов: http://www.fincher.org/tips/Languages/fsharp.shtml –

+0

Это ML язык программирования. Также по моему комментарию об отсутствии аннотаций типа я не имел в виду, что язык не имеет аннотаций типа, а скорее, что программисты обычно не применяют аннотации типа, когда они пишут код F #. Поскольку F # обладает очень мощными помехами, это не обязательно - это потрясающе, но недостатком является то, что он может быть менее читаемым, когда вы читаете его вне редактора, который расскажет вам о предполагаемой сигнатуре и типах ваших выражений. –

Смежные вопросы