Подтвердить что ты не робот

Выбор правильного языка

Я студент в университете, поэтому мой опыт ограничен, поэтому вопрос.

Если кто-то говорит вам, вот задача кодирования, на что вы смотрите, чтобы выбрать язык или парадигму, в которой вы это сделаете?

Надеюсь, что вопрос имеет смысл?

4b9b3361

Ответ 1

Есть много факторов, которые могли бы влиять:

  • Насколько критична производительность? Можно ли быстро написать медленное решение?
  • Какие библиотеки мне нужны?
  • Что такое платформа? ОПЕРАЦИОННЫЕ СИСТЕМЫ? Веб? Мобильные устройства?
  • Какова природа проблемы? Обработка строк в стиле Regex? Математика с Matlab/Maple/etc?
  • Графика? Текст?
  • Как можно повторно использовать решение?

Это предполагает, что на самом деле у вас есть выбор языков на выбор. Один из языков может решить эту проблему лучше всего, но если вы не знаете этого достаточно, то это практически не вариант, если у вас нет времени учиться.

Ответ 2

Я думаю, что вопрос: "Откуда вы знаете, что является правильным инструментом для работы?"

Отчасти это зависит от требований. Если они говорят о веб-интерфейсе или базе данных, вам, вероятно, понадобится опыт SQL и опыт работы с HTML. Если они упоминают высокопроизводительные графические дисплеи, это может предложить C/С++ и OpenGL/DirectX. Если требования говорят о высокоскоростной цифровой обработке, вам может понадобиться... ммм... что-то еще.;)

Следующее, что поможет выбрать, - это то, что доступно вам. Если вы работаете в команде с опытом Java, вы, вероятно, будете придерживаться Java, если у вас нет ОЧЕНЬ разумной причины для переключения, или если у вас уже есть дюжина лицензий для Visual Studio, это, вероятно, будет своего рода .NET-решение.

Ответ 3

Я всегда смотрю на несколько разных аспектов. Большинство из них сводится к тому, что языки библиотек поддержки имеют, окружающая среда и человеческие факторы - не сам язык. Это говорит о том, что разные языки имеют разные сильные стороны и важно выбирать язык, который соответствует тому, что вам нужно делать. Ниже приведены некоторые из вещей, которые я считаю при запуске нового проекта.

  • Область выполнения задачи. Это большая задача на уровне предприятия или она меньше. Различные языки имеют разные уровни поддержки для разных областей.
  • Какая проблема? Является ли он математическим, текстовым, логическим, пользовательским интерфейсом? Различные парадигмы языка будут определять тип проблем, для которых он подходит. Скорее всего, вы не будете использовать процедурный язык для чего-то, что связано с пользовательским интерфейсом.
  • Насколько хорошо вы знаете язык? В большинстве случаев для работы, которая работает одинаково хорошо, должно быть более одного языка. Ваша способность кодировать (или желание учиться этому) на языке важна, чтобы иметь возможность сделать это.
  • В какой среде это? На работе у меня разные требования, чем у меня дома. Работа чаще всего диктует ограниченное число. Также, если я нахожусь в команде с другими людьми, они, вероятно, тоже захотят это понять.

Ответ 4

Если это не задача, которая в основном кричит на вас, говоря вам, на каком языке она лучше всего работает, вы должны выбрать тот, на котором вы больше всего владеете... Я полагаю.

Ответ 5

Все о ваших интересах и вашем опыте. Если у вас есть хорошие знания в Java, то вы хотите потратить время на кодирование в C/С++/С#?

Насколько я могу судить, я возьму его на осуществимость. Если решение возможно в .Net, я поеду с .Net.

Также необходимо рассмотреть другие платформы, задачи которых будут реализованы. Если целевыми серверами могут быть Linux/Mac/Windows, перейдите на Java. Если задача требует слишком много работы на уровне системы, перейдите к c.  и т.д. и т.д.

Ответ 6

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

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

Затем придерживайтесь своего любимого.

Для меня это Asp.Net С#/jQuery.

У PHP есть хорошее сообщество и его свободное. Если вы новичок, я бы начал с этого.

Ответ 7

Я смотрю на проблему, и я думаю на очень высоком уровне, как я буду реализовывать ее на некоторых языках, которые я знаю. Скажем, например, я знал, что мне понадобится в два раза больше кода для реализации диалогового окна в MFC/С++, как и для его реализации на С#, и что моя Java была немного ржавой. Я бы решил запрограммировать его на С#.

Однако, поскольку вы являетесь студентом, вам может потребоваться выбрать язык, на котором вы не знакомы и реализовать проект на этом языке. Мое рассуждение в том, что я пришел в колледж, зная С++ очень хорошо. Мне не очень полезно реализовывать что-то на С++, что я знаю, что могу это сделать. Однако, внедряя его в С#, в котором я был не очень хорошо знаком, я мог бы получить больше знаний из программы, чем я получил бы в противном случае. Сохраняйте эту концепцию через свои годы в школе, и в конце концов вы узнаете намного больше.

Таким образом, в основном ваши варианты сводятся к тому, хотите ли вы закодировать его на самом простом языке, который вы знаете, или если вы хотите закодировать его на языке, который вы хотите изучить. Для каждого решения есть разные преимущества.

Ответ 8

Первое, на что я бы посмотрел: какие языки/парадигмы я знаю? Основываясь на этом ответе, я спрашивал себя, какие сильные стороны языка/парадигмы играют в проблему. Вот пример:

Я знаю JavaScript, Java и Python (для целей этого разговора). Является ли проблема веб-технологией? Огромный аргумент в пользу JavaScript. Не могли бы вы попробовать новые идеи для этой проблемы? Большой аргумент в пользу Python. Является ли он долговечным и чувствительным к производительности? Это аргумент для Java.

Ответ 9

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

  • С++ для интенсивной графики и обработки изображений, некоторой числовой работы и интерпретаторов высокого уровня.

  • Java + XSLT для веб-сервера (хотя я не проработал много веб-страниц в течение примерно шести лет и могу использовать взгляд на использование Ruby для некоторых вещей там или .net в магазине MS)

  • С# для бизнес-форм и менее интенсивной графики

  • python для очень маленьких скриптов, иногда небольших графических приложений.

  • C99, если я хочу использовать библиотеки нижнего уровня, интерпретаторы нижнего уровня, а также отдельные ПОС или встроенные системы.

Я также закончил работу над поддержкой Fortran, но никогда не инициировал проект Fortran.

Это никоим образом не является окончательным, но только то, что я нашел, хорошо работает в этих областях. Некоторые из них - суждение - хочу ли я комментировать длинные сроки компиляции и простоту модульности, чтобы получить комбинацию производительности и выразительности (С++)? Я хочу очень быстро создавать современные графические интерфейсы на основе форм (С#)? Я хочу манипулировать указателями и писать собственные процедуры сбора мусора (C)? Я хочу быстро попробовать алгоритм, чтобы увидеть, работает ли он (Python)?

Ответ 10

Выберите язык, который был хорошо документирован.