Перейти к содержанию
СофтФорум - всё о компьютерах и не только

Специализация языков программирования


Рекомендуемые сообщения

Этот топик не повод для холиваров, а поиск правды и смысла ;)

Как известно, языков программирования множество. Так какой выбрать для решения своей задачи? Какую задачу лучше решить на каком языке? Что лучше использовать для десктопного приложения, что для web-приложения? И т.д.

Поделитесь своим опытом.

Ссылка на комментарий
Поделиться на другие сайты

Лучше выбирать тот язык, который лучше знаешь. ИМХО, наиболее универсален и быстр среди быстрых языков C++, он, кстати, единственный остался у Microsoft транслируемым прямо в машинный код. Delphi более удобен в отношении надежности программ, он не дает возможности разгуляться любителям трюков, там компилятор контролирует действия программиста намного строже, и считается, что у него очень хорошая поддержка работы с базами данных. Для всяких научных расчетов хорош, как ни странно, Fortran, это его исходная специализация, у него встроенные возможности сверхточной математики, высокая скорость вычислений, огромные библиотеки готовых научных программ. Быстро наваять программу с навороченным интерфейсом без особых требований к быстродействию вроде бы лучше всего на C#. Программы для всех платформ обычно ваяют на Java, он благодаря хорошей совместимости на всех платформах очень распространен. Basic, по моему, для его любителей, он, как питон, в процессе заглатывал все нововведения других языков и вроде бы стал несколько сумбурным и неповоротливым, но поклонники у него, начиная с Гейтса, остаются.

Оффтоп
Сокращенное мной для наиболее популярных языков их сравнение, гуляющее по Интернету:

ЗАДАЧА: Прострелить себе ногу.

· C: Вы простреливаете себе ногу.

· C++: Вы случайно создаете дюжину копий объекта «вы» и всем им простреливаете ногу. Срочная медицинская помощь оказывается невозможной, так как вы не можете разобраться, где настоящие копии, а где — те, что только указывают на них и говорят: «А вот он я!»

· Java: После импорта java.awt.right.foot.* и java.awt.gun.right.hand.* и написания классов и методов, необходимых для этих классов, вы забываете, что вы, чёрт возьми, хотели сделать.

· SQL: INSERT INTO нога (ступня) SELECT патроны AS пуля FROM пистолет WHERE курок = 'СПУЩЕН'; COMMIT;

· Delphi: Вы залезаете на форумы и слезно умоляете дать вам компонент для прострела ноги.

· java script: Вы разрабатываете мощный, навороченный пользовательский интерфейс для стрельбы в ногу. Потом вы обнаруживаете, что в вашем пистолете отключены пули.

· Ruby: Ваша нога готова к выстрелу примерно через пять минут, но вы не можете найти места, где можно стрелять.

· PHP: Вы стреляете себе в ногу из пистолета, сделанного из частей 300 других пистолетов.

· ASP.NET: Вы находите пистолет, но он разваливается. Вы его собираете, но он снова разваливается. Вы пытаетесь использовать платформу .GUN, но она разваливается. Вы режете себе ногу.

· Perl: Вы стреляете себе в ногу, и никто не может понять, как вы сделали это. Через шесть месяцев не можете и вы.

· Фортран: Итеративно вы простреливаете каждый палец ноги, а когда пальцы заканчиваются, загружаете следующую ногу и продолжаете. Когда пули заканчиваются, вы все равно продолжаете попытки прострелить себе ноги, потому что не имеете возможности обрабатывать исключения.

· Pascal: Компилятор не позволит вам прострелить себе ногу.

· Ada: После тщательной сборки пакета «нога», вы пытаетесь одновременно зарядить пистолет, нажать курок, завопить и выстрелить себе в ногу. В ходе попыток обнаруживается, однако, что вас постигла неудача, так как ваша нога оказалась неверного типа.

· Кобол: Наводите ПИСТОЛЕТ COLT 45 на НОГА.СТОПА, ТОГДА помещаете РУКА.КИСТЬ.ПАЛЕЦ на ПИСТОЛЕТ.КРЮЧОК и ПОЖАЛУЙСТА, НАЖИМАЕТЕ. ТОГДА возвращаете ПИСТОЛЕТ в КОБУРУ. ПОЖАЛУЙСТА, ПРОВЕРЬТЕ, нуждаются ли шнурки в повторном связывании.

· LISP: Вы простреливаете себе отросток, который держит пистолет, с помощью которого вы простреливаете себе отросток, который держит пистолет, с помощью которого вы простреливаете себе отросток, который держит пистолет, с помощью которого вы простреливаете себе отросток, который держит пистолет, с помощью которого вы простреливаете себе отросток, который…

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

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

· Visual Basic: На самом деле вы будете только выглядеть, как будто ваша нога прострелена. Однако в процессе реализации вы получите столько удовольствия, что подобные мелочи вас не озаботят.

· Visual BASIC.NET: Вы тратите целое состояние на мощнейший, самоочищающийся, самонаводящийся, автоматический пистолет с бесконечным боезапасом и только тогда понимаете, что спуск курка занимает около года.

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

· Unix:

% ls

Foot.c foot.h foot.o toe.c toe.o

% rm * .o

rm: .o no such file or directory

% ls

%

· Язык управления заданиями IBM/370: Вы посылаете свою ногу в управляющую информационную систему с приложением документа на 400 страниц, точно описывающего, как именно вы хотите быть простреленным. Через три года ваша нога возвращается с глубоким ожогом.

· Paradox: Не только вы можете прострелить себе ногу, но и ваши пользователи.

· Ассемблер: Вы пытаетесь прострелить себе ногу, но обнаруживаете, что прежде вам придется изобрести пистолет, пулю, курок и вашу ногу. После чего вы нажимаете на курок, пистолет издаёт пару писков, после чего выдаёт BSoD.

· Python: Вы пытаетесь выстрелить себе в ногу, но то и дело попадаете промеж пальцев.

Изменено пользователем Тролль
Ссылка на комментарий
Поделиться на другие сайты

О.спасибо за веселое, а главное доступно-понятное разъяснение-сравнение языков. :D

Кстати, если имеются основные навыки и понятия в Pascsal ,можно перейти к изучению С++ ?

Ссылка на комментарий
Поделиться на другие сайты

OGR: имхо проще всего это С++ в содружестве JS, ну а так же добавки PHP и XUL - для полной совместимости.

mikemet: всё зависит от понятия "имеются основные навыки и понятия в Pascsal" этой фразы, можно перейти то любой момент, но главное это преследуемая цель.

Изменено пользователем Indomito
Ссылка на комментарий
Поделиться на другие сайты

Конечно, можно и очень полезно :). После Pascal в C++ будет в несколько раз легче разобраться. Все части языка вроде скобок, операций, циклов и так далее, которые в Pascal'е даны в законченном виде и в кожухе, в C++ демонстративно выставлены всеми деталями наружу и доступны для переделки по своим потребностям. Много языков сейчас очень похожи на C++, тот же Java, например. Да и новые разработки Pascal тоже, вроде быстро набирающего у нас популярность для обучения разработанного в Томском университете PascalABC.NET - чуть не половина его средств взята из C++. Все же профессионалы программируют в основном на C++-подобных языках. Такие языки гораздо более запутаны, чем Pascal, гораздо больше связаны с особенностями устройства компьютера (например, указатели на ячейки памяти и адресная арифметика), но и более гибкие, позволяют придумывать массу трюков и записывать программы очень компактно, хотя это больше похоже на стенографию.

Ссылка на комментарий
Поделиться на другие сайты

Тролль: Indomito: являясь большим поклонником С++ все же считаю, что писать на нем, допустим, web-приложение - это довольно большой мазохизм? Или же я не прав?

Ссылка на комментарий
Поделиться на другие сайты

OGR: да нет, просто всё зависит от того что ты пишешь, ну и я повторюсь:

- С++ базовая разработка;

- JS разработка того что удобнее сделать именно на нём, например динамическая модификация кода;

- XUL - разработка интерфейса самого WEB-приложения обращения/доступа к кодам С++ и JS.

Ссылка на комментарий
Поделиться на другие сайты

to Тролль : Спасибо за информацию о PascalABC.Net - не слышал.

Ну и за дальнейшее определение путей индивидуального изучения :)

Ссылка на комментарий
Поделиться на другие сайты

Indomito: меня просто смущает отсутствие в вашем списке как минимум 2х популярных языков. Это просто личное мнение? Или все же опыт?

Ссылка на комментарий
Поделиться на другие сайты

OGR: каких именно то? Просто не зная задачи сложно дать совет, просто мне хватает того что я написал.

Ссылка на комментарий
Поделиться на другие сайты

Indomito: ну я имел ввиду конкретно Java и C#.

Так вот про задачи я и спрашивал. Вот например фортран был изначально заточен под инженерные вычисления. Это лучшая сфера применения для него была. Я и пытался назначение других языков осмыслить )

Ссылка на комментарий
Поделиться на другие сайты

OGR: по сути достаточно С++ это универсальный язык, ну остальное для простоты написания. ИМХО

Ссылка на комментарий
Поделиться на другие сайты

  • 1 месяц спустя...

Если Паскаль, то Дельфи. Хотя есть мнение, что Дельфи умирает из-за проблем с компанией-разработчиком.

Турбо-Дельфи бесплатен. А так Дельфи 7 для Win32 десктоп.

Для web куча средств разработки - рекомендую пакет denwer.

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...