Другие языки программирования и технологии
Во сколько раз усложняется задача при неправильном выборе основного языка программирования для своего проекта?
Имеется в виду серьезный проект, где большая прикладная проблематика. То есть, выбрали например для веб-разработки вместо PHP -- C++ CGI. Или для встроенных решений вместо Assembler или C -- какое-нибудь Perl. Ну вы поняли? Насколько важно выбрать именно тот язык, который оптимален? А если его знаешь плохо, но он будет хорош в этой задаче? Это лучше или хуже того, чем если будешь использовать старый проверенный знакомый тебе язык?
Сложный и многогранный вопрос, общий знаменатель здесь подвести очень сложно.
Есть очень условное понятие уровня языка. Мол Ассемблер - язык низкого уровня, С - среднего, пайтон - высокого а яваскрипт - небесного. Так вот, если выбранный язык уровнем ниже, чем решаемая задача (написание CGI на С) то это вероятно выльется в большие временные потери, но не более того.
Если же решаемая задача ниже уровнем, чем выбранный язык, то задача может оказаться неришаемой средствами выбранного языка. Т. е. перед тем, как начать писать микропрограммы для контроллёров на каком нибудь перле, этот самый перл вероятнее всего придётся портировать на микроконтроллеры. Для чего понадобится С/Ассемблер. Кроме того, некоторые фишки языков высокого уровня могут быть впринципе неприменимы или сложноприменимы в низкоуровнеывх задачах.
Но, послушай совет, если перед тобой в принципе стоит проблема выбора между "языком, который знаю хорошо" и "языком, который подходит к задаче", выбирай последнее. А ещё - освой в свободное время какой нибудь ассемблер. Неважно какой - хоть минималистичный от микроконтроллера PIC, хоть трюковатый от архаичного MOS6502, хоть перегруженный x86-64. Можно на эмуляторе каком нибудь. И, желатьельно, почитай про лисп и форт.
В какой-то момент времени просто становится без разницы на чём писать. И вот именно в этот момент можно уже начинать называть себя программистом с уверенностью не только на собеседованиях но и среди друзей.
Есть очень условное понятие уровня языка. Мол Ассемблер - язык низкого уровня, С - среднего, пайтон - высокого а яваскрипт - небесного. Так вот, если выбранный язык уровнем ниже, чем решаемая задача (написание CGI на С) то это вероятно выльется в большие временные потери, но не более того.
Если же решаемая задача ниже уровнем, чем выбранный язык, то задача может оказаться неришаемой средствами выбранного языка. Т. е. перед тем, как начать писать микропрограммы для контроллёров на каком нибудь перле, этот самый перл вероятнее всего придётся портировать на микроконтроллеры. Для чего понадобится С/Ассемблер. Кроме того, некоторые фишки языков высокого уровня могут быть впринципе неприменимы или сложноприменимы в низкоуровнеывх задачах.
Но, послушай совет, если перед тобой в принципе стоит проблема выбора между "языком, который знаю хорошо" и "языком, который подходит к задаче", выбирай последнее. А ещё - освой в свободное время какой нибудь ассемблер. Неважно какой - хоть минималистичный от микроконтроллера PIC, хоть трюковатый от архаичного MOS6502, хоть перегруженный x86-64. Можно на эмуляторе каком нибудь. И, желатьельно, почитай про лисп и форт.
В какой-то момент времени просто становится без разницы на чём писать. И вот именно в этот момент можно уже начинать называть себя программистом с уверенностью не только на собеседованиях но и среди друзей.
Это сложно назвать ошибкой. Ближе будет - саботаж, намеренное действие. Сегодня сложно ошибиться. Даже на начальной стадии можно понять, что поставили не на ту лошадку и произвести коррекцию, минимизировав ущерб поспешного решения. Но чаще всего перед непосредственной разработкой полезно провести нечто вроде ОКР с оценкой возможных сценариев и использования тех или иных средств, привлекая экспертов по мере возможности. Так что, если упрямо следовать однажды выбранного курса, результат ожидает быть плачевным, но в обычном, не фанатичном состоянии можно прийти к оптимальному
Зависит от того, насколько сильно ты промазал. Если для работы с WinAPI ты вместо C++ использовал Delphi, то в общем-то ничего страшного - потрахаесси с поиском заголовочных модулей и все устаканится. А если для тех же целей ты решил использовать JavaScript - тады ой тебе, родной.
"То есть, выбрали например для веб-разработки вместо PHP -- C++ CGI"
Бывает такое. Ну, не настолько тупо. Но например запилить ядро на C++ в расчете под highload и фронт на PHP или Node.js, а в итоге получить 2000 пользователей (совсем не highload), но зато этим C++ чудовищно усложнить разработку с первых до последних дней проекта, вполне себе реально.
Я в таком проекте и работаю.
Чудовищно - это, может быть, не в десятки раз (если в десятки, то там еще и другие факторы), но 3-5 раз будет.
"А если его знаешь плохо, но он будет хорош в этой задаче? Это лучше или хуже того, чем если будешь использовать старый проверенный знакомый тебе язык?"
Важно еще - кто кроме тебя его знает. Если проект - это не заказ на фрилансе за 15000, конечно.
Бывает такое. Ну, не настолько тупо. Но например запилить ядро на C++ в расчете под highload и фронт на PHP или Node.js, а в итоге получить 2000 пользователей (совсем не highload), но зато этим C++ чудовищно усложнить разработку с первых до последних дней проекта, вполне себе реально.
Я в таком проекте и работаю.
Чудовищно - это, может быть, не в десятки раз (если в десятки, то там еще и другие факторы), но 3-5 раз будет.
"А если его знаешь плохо, но он будет хорош в этой задаче? Это лучше или хуже того, чем если будешь использовать старый проверенный знакомый тебе язык?"
Важно еще - кто кроме тебя его знает. Если проект - это не заказ на фрилансе за 15000, конечно.
Во сколько раз - тебе с какой точностью до запятой ответ нужен?
Похожие вопросы
- Помогите с выбором изучения языка программирования, после которого будет легче работать с другими языками?
- Сколько нужно времени что бы изучить какой либо язык программирования ?
- Сколько в среднем потребуется времени для изучения одного языка программирования?
- Необходимо консультация по реальности проекта, и выбору языка программирования для реализации нейросети. Подр. и внутри.
- Выбор языка программирования
- Какой язык программирования сможет решить задачу? (Pascal не смог)
- Умею решать математические задачи, а на языке программирование вообще ни капли даже в голову не приходит как?
- где бы посмотреть основное отличие "полноценных" и "неполноценных" языков программирования?
- Знаю хорошо язык программирования на 70% то что необходимо на начальном этапе. Но не могу решать некоторые задачи.
- Выбор языка программирования