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

12
задан IAdapter 12 June 2010 в 13:46
поделиться

10 ответов

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

  • Насколько критична производительность? Приемлемо ли быстро написать медленное решение?
  • Какие библиотеки мне понадобятся?
  • Какая платформа? ОС? Веб? Мобильные устройства?
  • Какова природа проблемы? Обработка строк типа Regex? Математическая с Matlab/Maple/etc?
  • Графика? Текст?
  • Насколько многоразовым я хочу видеть решение?

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

13
ответ дан 2 December 2019 в 19:52
поделиться

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

0
ответ дан 2 December 2019 в 19:52
поделиться

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

Что касается меня, то я буду исходить из целесообразности. Если решение выполнимо в .Net, я буду использовать .Net.

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

0
ответ дан 2 December 2019 в 19:52
поделиться

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

  1. Объем выполняемой задачи. Это большая задача на уровне предприятия или что-то меньшее. Разные языки имеют разные уровни поддержки для разных областей.
  2. Что это за проблема? Это математический, текстовый, логический, управляемый пользовательским интерфейсом? Различные парадигмы языка будут определять тип проблем, для которых он подходит. Скорее всего, вы не стали бы использовать процедурный язык для чего-то, что управляется пользовательским интерфейсом.
  3. Насколько хорошо вы знаете язык? В большинстве случаев для работы будет использоваться более одного языка, которые одинаково хорошо работают. Ваша способность кодировать (или готовность выучить его) на языке важна для выполнения этой задачи.
  4. В какой среде это находится? На работе у меня другие требования, чем дома. Работа чаще требует использования ограниченного количества. Кроме того, если я нахожусь в команде с другими людьми, им, вероятно, также нужно будет это понять.
1
ответ дан 2 December 2019 в 19:52
поделиться

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

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

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

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

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

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

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

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

0
ответ дан 2 December 2019 в 19:52
поделиться

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

0
ответ дан 2 December 2019 в 19:52
поделиться

Я думаю, что вопрос заключается в следующем: «Как узнать, какой инструмент подходит для работы?»

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

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

3
ответ дан 2 December 2019 в 19:52
поделиться

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

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

0
ответ дан 2 December 2019 в 19:52
поделиться

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

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

Тогда остановитесь на своем любимом.

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

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

0
ответ дан 2 December 2019 в 19:52
поделиться

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

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

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

0
ответ дан 2 December 2019 в 19:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: