2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу Пред.  1, 2, 3, 4, 5, 6, 7 ... 9  След.
 
 Re: Выбор языка программирования
Сообщение20.11.2011, 20:59 
Заслуженный участник


27/04/09
28128
Morkonwen в сообщении #505407 писал(а):
Я больше по Mathematica но они вроде похожи. Так вот если говорить о функциональном программировании, то вполне эти языки приспособлены!
Кстати говоря, Mathematica очень богатый, я бы сказал, язык. Так, к слову.

 Профиль  
                  
 
 Re: Выбор языка программирования
Сообщение24.11.2011, 11:30 


25/10/10
17
Alec в сообщении #476729 писал(а):
Для многих программирование не самоцель.
Просто способ лично проверить какие-то свои идеи.
Обычно весьма простые.
У меня вопрос к профессионалам: какой из языков программирования наиболее прост для программирования непрофессионалами.
Например, Delphi или С++?
Мне что-то подсказывает, что вы заблуждаетесь относительно того, кто является "профессионалом" в программировании, а кто нет (как и большинство тех, кто относит себя к "профессионалам"), так что позволю себе разъяснить.

Все, кто прямо или косвенно связан с разработкой ПО, в самом общем смысле делятся на две категории: системщики и прикладники. Прикладной программист - это тот, кто описывает т.н. "бизнес-логику" на языке высокоуровневых абстракций, выражающих непосредственно термины прикладной предметной области, не заморачиваясь деталями их реализации. Реализация же их ложится на плечи системщиков - они пишут трансляторы предметно-ориентированных языков (Domain-Specific Language, DSL) и низкоуровневые, критичные по показателям эффективности, функции. Сугубо программистские знания нужны преимущественно во втором случае, в первом же важнее знания предметной области и связанного с ней математического аппарата.

Получается, что "профессиональным" можно назвать того программиста, который превосходно пишет низкоуровневые функции, интерпретаторы, компиляторы, кодогенераторы и т.п., и (возможно) в определённой степени знаком с рядом наиболее актуальных проблем прикладного программирования. Соответственно, главным отличительным признаком "профессионального" программиста можно считать знание всех основных элементов семантик для разного класса языков - как минимум это Scheme, SML, Forth, Рефал, Prolog, Smalltalk и Algol - так что на мнение тех, кто не может этим похвалиться, не стоит обращать внимания.

Ваш вопрос подразумевает гибкость как главное требование к языку, так что понять сказанное поможет изучение диалектов языка Лисп - Scheme и Common Lisp - т.к. именно там наиболее чётко и грамотно рассматривается такое разделение труда (собственно, для того Лисп и был создан). На практике этот подход можно применять со многими языками (с Питоном в частности), но никак не с Delphi. С C++ его как-то можно применять, но ужасно неудобно, т.к. язык слишком низкоуровневый и прикладник оказывается вынужден воевать с неоправданными трудностями языка и его уродливым синтаксисом, постоянно совершать всяческие нелепые телодвижения по удовлетворению его низкоуровневых потребностей. Пожалуй, boost::spirit<> - это предел того, что из С++ в этой стезе можно выдавить.

Так что почитайте пока книжку SICP как учебник по элементарному программированию, а потом ищите профи, который делал бы DSL'и под ваши потребности. Это намного проще и дешевле, чем для добавления каждой новой фитюльки в программу перелопачивать 99% кода, как это приходится делать при разработке на С++ или Delphi. Причём, если вы работаете в рамках конкретной прикладной области, то сделать DSL нужно всего один раз, и не исключено, что он уже существует. Например, для СУБД существует язык SQL, для GUI - Tcl/Tk (можно использовать Tk с Пайтоном) и HTML/XML, для символьной обработки - снова Lisp и Рефал, и т.д.

wagant в сообщении #477809 писал(а):
e2e4 в сообщении #477739 писал(а):
wagant писал(а):
неплох C++, он очень мощный и красивый язык,
Что же в нем красивого? Костыли сплошные...
Про костыли я не согласен. Просто нужно понимать, что С++ это мультипарадигмальный язык. Да, его синтаксис несколько отягощен длинным временем эволюции и бременем поддержки C. Но новый стандарт C++0x во многом эти проблемы все таки решает.

А красивые вещи, например, это паттерны CRTP или NVI с его private виртуальными функциями.
Для непрофессионала необходимо пояснить значение витиеватого слова "паттерн".

Паттерн - это устоявшийся, проверенный и повсеместно применяемый алгоритм решения некоторой часто встречающейся задачи. Обычно термин применяется в свете алгоритма декомпозиции задачи на элементарные кубики, суперпозиция которых должна породить систему, требуемую в ТЗ. Методология очень проста, основных паттернов провозглашено всего пара десятков. Иными словами, предполагается, что систему лучше строить не из кубиков, адекватных сущностям предметной области, комбинируя их адекватных образом, а из стандартных композиций кубиков стандартного набора. Это примерно как из букв "А", "Ж", "О" и "П" пытаться составить слово "ВЕЧНОСТЬ".

Профессиональный же программист никогда не позволит себе решать одну и ту же задачу несколько раз вручную - он автоматизирует свою работу, т.е. реализует этот алгоритм в виде программы. В данном случае в виде программы, порождающей требуемую по ТЗ программу. Естественно, это имеет смысл в случае, когда затраты на автоматизацию много меньше, нежели реализация целевой программы вручную. В Лиспе и функциональной парадигме это так и есть, Delphi же для этого совершенно не подходит.

Кстати, в рамках "паттерновой" терминологии описанный выше подход с разделением системы на слои, сообщающиеся через барьеры абстракции, называется "Interpreter pattern". Он же "Language-oriented design", он же "метапрограммирование", если угодно - каждый может выбирать себе тот buzzword, что милее сердцу. Остальные "паттерны" изначально появились как отчаянные попытки изобразить удобные вещи из грамотных языков убогими средствами ООП. Например, функция высшего порядка изображается с помощью "Command pattern". Собственно, это и есть "костыли".

 Профиль  
                  
 
 Re: Выбор языка программирования
Сообщение24.11.2011, 20:06 


03/10/06
826
Postrelyonysh, на LISP в какой среде программируете, и какой ОС у вас?

 Профиль  
                  
 
 Re: Выбор языка программирования
Сообщение25.11.2011, 19:59 
Аватара пользователя


22/09/09

1907
Delphi-7(более поздние слишком навороченные!)
Плюсы:
1) Delphi - это расширенный Pascal, а Pascal был специально создан для обучения программированию.
2) Классическое описание Паскаля Вирта занимает всего 30 стр. - можно вдумчиво прочитать всего за несколько часов.
3) Паскаль понимают почти все, кто программирует. Поэтому просто получить совет.
4) Паскаль - строгий язык, что позволяет легко выявлять много распространенных ошибок (так называемое защитное программирование).
5) Pascal-like псевдокод широко используют в книгах и статьях, что облегчает реализацию нужного алгоритма из лит. источника и публикацию своего алгоритма.
6) На Pascal и Delphi написано очень много программ с открытым кодом, не приходится изобретать велосипед, а достаточно "погуглить".
7) Delphi-7 - высоко эффективный проф. инструмент. Софт, написанный на нем, будет работать так же быстро, как и на других языковых средствах (при условии сравнимого качества исходного кода).
8) Delphi-7 - реализует современные технологии обеспечения полного жизненного цикла программы. В частности, визуальное программирование (быстрая и наглядная разработка графического интерфейса пользователя GUI), синтаксически чувствительный редактор исходного кода, оптимизирующий редактор связей, мощные отладчики на уровне исходного кода и на уровне инструкций CPU и т.д.
8) Под Delphi-7 просто применять технологию COM, т.о. легко использовать стандартные инструменты Excel, Word и т.д. для ввода/вывода.
9) Delphi-7 хорошо приспособлен к многопоточному программированию (гораздо лучше, чем С++, для которого нужны "примочки" вроде Intel TBB)
10) Почти 100% Delphi-7 совместим с Kylix, т.о. можно легко переносить программы под ОС Линукс.
Минус: ИМХО всего один: мода на другие языки явилась причиной невнимания многих индустриальных лидеров. Например, Intel не выпускает оптимизирующего компилятора, как для С/С++ и фортрана.
Совет по быстрому старту с нуля в Delphi-7: не забивать голову ООП, записями с вариантами и проч., а начинать либо с консольных приложений, либо "срисовать" код с простенькой формой из любого учебника. Взять хороший учебник по Паскалю и читать его, делая упражнения. За неделю на таком любительском уровне можно изучить основы, а далее по желанию можно совершенствоваться инфинитно.

 Профиль  
                  
 
 Re: Выбор языка программирования
Сообщение25.11.2011, 20:25 
Заслуженный участник


11/05/08
32166
bin в сообщении #507990 писал(а):
Pascal был специально создан для обучения программированию.
bin в сообщении #507990 писал(а):
3) Паскаль понимают почти все, кто программирует.
bin в сообщении #507990 писал(а):
4) Паскаль - строгий язык,

Дополню: по всем этим причинам Паскаль -- это идеальное сочетание человекоподобности и одновременно машинноориентированности.

 Профиль  
                  
 
 Re: Выбор языка программирования
Сообщение26.11.2011, 12:50 
Аватара пользователя


31/10/08
1244
Цитата:
Для многих программирование не самоцель.
Просто способ лично проверить какие-то свои идеи.
Обычно весьма простые.
У меня вопрос к профессионалам: какой из языков программирования наиболее прост для программирования непрофессионалами.
Например, Delphi или С++?
Имеет ли смысл что-то рекомендовать, например со стороны РАН.

Я являюсь знатоком следующего набора языков.
1) BASIC,
2) Visual Basic,
3) Pascal,
4) Delphi,
5) C,
6) C++,
7) C#,
8) PHP,
9) MatLab,
10) ASM,
11) Mathcad.
Языки учу с ранних лет. Так что знаю их отлично.
Вот Русский язык хромает, так как ему не уделял нужного внимания. За что извиняюсь сразу.
Также владею ещё рядом языков в меньшей степени.

Первое что надо сказать выучив один язык, вы легко освоите другие языки.
По мимо прочего существует множество реализаций и библиотек. Которые добавляют к языкам диалекты.
QT, MFC, CLX, VCL и тд. Это всё библиотеке подпрограмм.

Надо сказать что языки имеют специализацию. На одном языке удобнее делать одно на другом другое.
К языком программирования общего назначения можно отнести с 2 по 9.
Из них 8 и 9. Имеют ряд особенностей которые создают ограничения для их применения.
1, 10 и 11 я отношу к специализированным языкам.

Теперь по поводу освоения. Проще всего начинать с преподавания BASIC. И обучаться ему будет проще.
1. Он не требует объявлений чего либо можно сразу писать код.
2. Число типов переменных ограниченно 4 типами: число, логический тип, строка, массив.
Что ограничивает работу и возможность применять язык.
3. Отсутствия большинство возможностей, которые поддерживают более развитые программы.
Поэтому спецификация языка ограничивается несколькими страницами.

По поводу недостатков.
Имеет ряд недостатков:
1) Не поддерживает типы данных принятые в компьютере и других языках программирования.
2) Не поддерживает сложные типы данных.
3) Нет указателей, как следствие нет динамической памяти. Очень сильно ограничивает круг алгоритмов которые можно реализовать.
4) Отсутствие классов. Отсутствие шаблонов. Что затрудняет написание на нём средних и больших программ.
5) Мало популярен.
6) зачастую реализация языка выполнена в виде интерпретатора что замедляет работу. Также в виду отсутствия указателей тоже замедляет код, так как данные приходится копировать, а не передавать по ссылке.


Pascal и C богаче и для полного освоения придётся освоить еще и указатели. Типы данных богачи. И отсюда более строгие правила программирования, которые требуется соблюдать.
Но учить стоит. Так как они являются языками общего назначения. На них можно сделать всё.

Стандарты обоих языков очень похожи, как по содержимому так и по объёму. Но С имеет по больше возможностей. Как перегрузка операторов. Арифметика указателей. И др.

Delphi и С++ развивает своих предшественников. Добавляя ООП. ООП хорошо применять для написания больших программ. Это больше нужно для профессиональных программистов или любителям.

Сразу скажу что тут есть над чем поломать голову. С++ гораздо богаче чем Delphi. Дело в том что в C++ помимо ООП подбавляли всякое разные возможности. Что развивают возможности языка, но портят его красоту, стройность, строгость.

Если вы хотите осваивать параллельное программирование, то стоит учить C++ в связке с OpenMP.
В Delphi нет ничего подобного. Что заставляет реализовывать все алгоритмы на более низком уровне.


Если вам надо обрабатывать строковые данные то вам надо освоить специализированные языки.
Такие как EBNF и язык регулярных выражений.
Первый применяется для описания формальных грамматик.

Обычно они применяются, как расширения языков общего назначения.

Перейдём к MathCad. Это язык стоит особняком, так как запись программ идёт в виде формул. Язык более примитивен чем BASIC. Работа с ветвлениями затруднена. Но есть особенность в нём есть модуль для символьных вычислений, что полезно для математиков и школьников. Символьные вычисления построены на ядре среды Maple.
Maple - это ещё один язык и одноименная среда.

Тут некоторые спорили про символьные вычисления и численные расчёт - что быстрее? В общем случае этот спор бессмысленный. Так как символьные вычисления применяются для другого.

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


Итог: советую начинать с BASIC, а потом переходить на C. Хотя ничто не мешает вам выбрать паскаль вместо С.

 Профиль  
                  
 
 Re: Выбор языка программирования
Сообщение26.11.2011, 15:38 
Заслуженный участник


27/04/09
28128
Ни в коем случае не стоит начинать с BASIC! Но это моё необоснованное мнение.

 Профиль  
                  
 
 Re: Выбор языка программирования
Сообщение26.11.2011, 16:21 
Заслуженный участник


09/08/09
3438
С.Петербург
yk2ru в сообщении #507472 писал(а):
Postrelyonysh, на LISP в какой среде программируете, и какой ОС у вас?
Думаю, что знаю ответ:
Postrelyonysh в сообщении #419301 писал(а):
Мне программирование как таковое нахрен не вперилось - мои интересы сосредоточены в совсем иных прикладных областях - но я был вынужден потратить и несколько лет на изучение программирования, только лишь для того, чтобы уметь объяснять программистам на их языке что от них требуется, быть защищённым от их умно звучащих оправданий за паршивость выполненной работы, и уметь посадить их в лужу, если упруться. Если бы у наиболее часто встречающихся программистов с восприятием действительности всё было бы в порядке, я бы дальше школьной информатики в него совался.

Pavia в сообщении #508291 писал(а):
Я являюсь знатоком следующего набора языков.
...
Теперь по поводу освоения. Проще всего начинать с преподавания BASIC. И обучаться ему будет проще.
1. Он не требует объявлений чего либо можно сразу писать код.
На звание знатока не претендую, но категорически не советую начинать освоение с BASICа без 'Option Explicit': во-первых, у новичка может уйти довольно много времени на поиск опечатки в идентификаторе, во-вторых, полезно с самого начала задуматься о типе вводимой переменной. Честно говоря, глядя на длинный список перечисленных Вами недостатков, довольно трудно понять рекомендацию начинать с Бэйсика.

Если нет желания возиться с описаниями типов, то лучше использовать что-нибудь типа Ruby или Python.

 Профиль  
                  
 
 Re: Выбор языка программирования
Сообщение26.11.2011, 16:55 
Аватара пользователя


22/09/09

1907
Как известно, в программировании было три революции: структурная, модульная и ОО (объектно ориентированная). BASIC возник до этих революций, и его классические реализации (как QBASIC для MS DOS) безнадежно отсталые от прогресса. Если говорить о VB, FreeBASIC и прочих потомках - то они радикально отличаются от классического BASIC и по сути это иные, гораздо более сложные языки. Поэтому фактор простоты изучения теряется. Но, не входя в детали, можно утверждать, что VB, FreeBASIC и т.д. унаследовали ряд пороков своего прародителя. Поэтому я совершенно согласен с мнением:
arseniiv в сообщении #508338 писал(а):
Ни в коем случае не стоит начинать с BASIC!
Что касается С/С++, то опять же, не вдаваясь в детали, можно утверждать, что на них слишком легко написать плохой трудночитаемый код. Требуются большие теоретические знания и опыт практической работы, чтобы писать хороший легко читаемый и модифицируемый код на этих языках. Кстати, показательно, что сообщество программистов на этих языках расколото: те, кто пишет на С, зачастую не могут терпеть С++ и наоборот :-)

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

И еще одно замечание: расширенные Паскали, какими являются Turbo/Borland Pascal и Delphi, позволяют обойти все принципиальные ограничения стандартного Паскаля, в том числе и писать эффективные многопоточные приложения (кстати, и удобные средства для подключения OpenMP к Delphi есть). В случае крайней необходимости можно писать фрагменты кода и на ассемблере, который, будучи языком низкого уровня, всегда теоретически будет мощнее любого языка высокого уровня (ЯВУ): ассемблер содержит все множество инструкций процессора, а ЯВУ использует только подмножество ;-) Ассемблерные фрагменты легко подключаются в Delphi-7, и это гораздо проще, чем писать всю программу на ассемблере: не надо возиться с вводом выводом.

-- Сб ноя 26, 2011 17:17:07 --

Postrelyonysh в сообщении #507300 писал(а):
Все, кто прямо или косвенно связан с разработкой ПО, в самом общем смысле делятся на две категории: системщики и прикладники. Прикладной программист - это тот, кто описывает т.н. "бизнес-логику" на языке высокоуровневых абстракций, выражающих непосредственно термины прикладной предметной области, не заморачиваясь деталями их реализации. Реализация же их ложится на плечи системщиков - они пишут трансляторы предметно-ориентированных языков (Domain-Specific Language, DSL) и низкоуровневые, критичные по показателям эффективности, функции.
Классификация очень спорная и применимая только в достаточно крупных индустриальных проектах производителей коммерческого ПО. А как классифицировать научного работника, который создает новый алгоритм и реализует его в виде программы? А ведь такие специалисты в основном и определяют прогресс computer sci. и, в частности, программирования, которое является частью компьютерных наук и технологий. Насколько я понял, стартовый вопрос этой темы: именно такая специализация и нужна его автору.

 Профиль  
                  
 
 Re: Выбор языка программирования
Сообщение26.11.2011, 18:30 
Заслуженный участник


27/04/09
28128
Кстати, предлагаю Lua. (Жалко, что сэкономив на многом оправданно, они неоправданно сэкономили на уникоде. Библиотеки, конечно, есть, но в сам язык они не входят и, наверно, не войдут.)

 Профиль  
                  
 
 Re: Выбор языка программирования
Сообщение26.11.2011, 19:09 
Заслуженный участник
Аватара пользователя


07/01/10
2015
Не бывает универсального языка для всего, IMHO. К каждой задаче нужно подходить индивидуально.

(Оффтоп)

Если рассматривать математические задачи, то моя личная скромная статистика (по задачам с Project Euler) следующая:
Код:
Haskell -- 40%
Mathematica -- 38%
Ruby -- 16%
C -- 4%
Perl -- 2%

 Профиль  
                  
 
 Re: Выбор языка программирования
Сообщение26.11.2011, 22:50 
Аватара пользователя


31/10/08
1244
Цитата:
На звание знатока не претендую, но категорически не советую начинать освоение с BASICа без 'Option Explicit': во-первых, у новичка может уйти довольно много времени на поиск опечатки в идентификаторе, во-вторых, полезно с самого начала задуматься о типе вводимой переменной. Честно говоря, глядя на длинный список перечисленных Вами недостатков, довольно трудно понять рекомендацию начинать с Бэйсика.

Если нет желания возиться с описаниями типов, то лучше использовать что-нибудь типа Ruby или Python.

По поводу Option Explicit, при объяснении основ новичкам даются определения переменных длиною в 1 букву. А длина операторов не превосходит 5 (print).

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

То что в бэсике считается не достатком, так это его простота. Да в нём многое отсуствует, но именно это делает язык простым. Простота нужна именно для обучения. Новичку проще освоить простые модели, а уже потом переходить на более сложные.
Именно поэтому я рекомендую не останавливаться на бэсике.
Человеческая память такова что запоминание идёт по слойно. Отсюда поговорка "повторение мать учения". Именно поэтому сначала новичку объясняют физику вначале на шариках и простых идеях. Потом через год дают формулы без вывода. И только потом уже в вузе на первом кусе или в старших классах вводят формулы записанные в дифференциальном виде и в самом конце дают вывод этих формул и их решение.


bin
Цитата:
кстати, и удобные средства для подключения OpenMP к Delphi есть

Отсюда по подробнее.

 Профиль  
                  
 
 Re: Выбор языка программирования
Сообщение26.11.2011, 23:15 
Заслуженный участник


27/04/09
28128
Pavia в сообщении #508565 писал(а):
при объяснении основ новичкам даются определения переменных длиною в 1 букву
Ну и зря. Вы же, наверно, знаете, что если нужно имя переменной в 20 букв, нельзя отказываться и сокращать? А люди-то привыкают. И потом (а) им самим трудно и (б) пишут плохой, ужасный, неподдерживаемый код.

-- Вс ноя 27, 2011 02:19:44 --

Pavia в сообщении #508565 писал(а):
Именно поэтому сначала новичку объясняют физику вначале на шариках и простых идеях. Потом через год дают формулы без вывода. И только потом уже в вузе на первом кусе или в старших классах вводят формулы записанные в дифференциальном виде и в самом конце дают вывод этих формул и их решение.
Если кто-то делает как вы описали, его надо отстранить от преподавания.

Pavia в сообщении #508565 писал(а):
Во вторых потратив время на поиск ошибки обучаемый запомнит ошибку и уже её не совершит.
К опечаткам и некоторым другим это не относится. Я вот грамотный человек, а опечатываюсь от двух до, наверно, ста раз в день. (То, что этого не видно, конечно, ничего не значит.) Как тут можно научиться? Хм.

 Профиль  
                  
 
 Re: Выбор языка программирования
Сообщение27.11.2011, 20:52 
Аватара пользователя


22/09/09

1907
Pavia
Pavia в сообщении #508565 писал(а):
Цитата:
кстати, и удобные средства для подключения OpenMP к Delphi есть

Отсюда по подробнее.

Я сказал, что ИМХО "есть удобные средства", но не сказал, что есть реализация OpenMP для Delphi. Некоторые идеи см.:
http://wiki.freepascal.org/OpenMP_support
http://pascalabc.net/downloads/MikhailoMMX_Mag.pdf

caxap
caxap в сообщении #508459 писал(а):
Не бывает универсального языка для всего, IMHO.

IMHO есть термин "универсальный язык программирования"(УЯП), ему противопоставляется "специализированные языки программирования"(СЯП). На СЯП задачи, для которых он предназначен, программировать быстрее, чем на УЯП. А вот многие задачи, для которых данный СЯП не предназначен, запрограммировать бывает очень сложно, а иногда невозможно. Примером простого СЯП может служить язык командных файлов MS DOS версии 3. На нем быстро записать задачу очистки директории от мусора (файлы с расширением bak, tmp и т.д.), а вот сосчитать, сколько будет дважды два, не выйдет. На УЯП можно и мусор чистить, можно и два на два умножить, но исходный текст программы будет длиннее, чем на СЯП - за универсальность приходится платить. Если для всего круга решаемых задач удается подобрать хороший СЯП, то стоит использовать его. Но только подобрать не всегда получается. А если интересует достаточно широкий круг задач, то стоит ли для каждой задачи осваивать новый язык? Тем более, что для каких то задач подходящего СЯП может и не найтись.

 Профиль  
                  
 
 Re: Выбор языка программирования
Сообщение27.11.2011, 22:13 
Заслуженный участник
Аватара пользователя


07/01/10
2015

(Оффтоп)

bin в сообщении #508942 писал(а):
Тем более, что для каких то задач подходящего СЯП может и не найтись.

Ну не знаю. IMHO, нужно стараться всегда идти по пути наименьшего сопротивления. Вместо того, чтобы выучить один паскаль и мучиться с ним, мне кажется выгодней освоить несколько инструментов и выбирать нужный по ситуации. Некоторые ножом и хлеб режут и винты откручивают, а некоторые предпочитают держать у себя отвёртку. Я к программированию имею чисто любительское отношение, но даже в своих небольших наработках стараюсь следовать unix-way и разбивать программу на несколько маленьких узконаправленных и писать каждую на подходящем языке. Показательный пример -- git, последняя версия которого разбита на 157 частей:
Код:
$ ls /usr/lib/git-core/git-* | wc -l
157


Даже в такой, на первый взгляд, узкой области как математические задачи, выбор одного языка для всего IMHO не оправдан. Я уже писал личную статистику по Project Euler. Алгоритмы на графах мне показалось удобней всего реализовывать на Ruby, к тому же он обеспечил мне лёгкий ввод исходных данных из файла. Когда требуется пройтись по первой тысяче простых чисел и что-то чисто математическое проделать с ними, то руби или хаскель курят в сторонке, пока это в три строчки реализуется на Mathematica. Ну а когда простой, но жёсткий брутофорс, то грех не воспользоваться низкоуровневостью Си.

Короче, ТС я советую подучить несколько языков (как и с человеческими -- главное начать, а там уж до полиглотства не далеко) вместо зацикливания на одном.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 135 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7 ... 9  След.

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group