Выбираем язык программирования

Тема в разделе "Статьи", создана пользователем Hookman, 28 апр 2009.

  1. Hookman
    Hookman Guest
    [intro]​

    Всем привет. Сидя за компом в 11 часов вечера и в очередной раз понимая что до завтра мне всё равно не осилить конспект по "Переводоведению" я решил закрыть свои грехи в этом же направлении. Накопал у буржуев интересную статейку. Думаю будет интересно. Запостил в раздел "Наши статьи" так как считаю что перевод это уже не копипаст, а труд, причём не малый. Ну что ж начнём.
    [Subj]​

    Много раз на форумах и чатах я слышал один и тот же вопросс снова и снова. "Какой язык программирования мне учить?" Ответ был разным для каждого кто хочет выучить язык программирования. Эти советы изложены в этой статье для того чтобы помочь людям которые хотели бы начать програмировать и хотят выбрать их первый язык программирования. Итак, возьмите ручку и лист бумаги, и приготовьтесть сделать несколько заметок.
    Сперва вы должны сесть и подумать, какую цель вы хотите достигнуть при помощи программирования. Хотите ли вы делать стабильные веб-приложения, или может быть быстрые приложения для Windows чтобы считать количество краски для покраски комнаты?
    Как насчёт создания видео игр или ваших собственных операционных систем? Возможно вы хотите альтернативу чтобы попробовать все это, если же вы хотите что то одно из перечисленного выше то есть язык программирования который Вам подойдёт.
    Вам нужно просто определиться, чего Вам не хватает и чего вы хотите. Изучите описания популярных языков программирования и выясните что они предлагают.Затем Вы должны определиться с уровнем сложности который вы хотите освоить. Никогда не бойтесь пропробовать что-нибудь сложнее, чем по-вашему мнению Вы можете осилить.
    Если это слишком для Вас, то Вы поймёте это достаточно рано чтобы начать учить другой язык программирования и не тратить своё время попусту. Все языки программирования имеют одни и те же корни. Вы сами это поймёте когда научитесь программировать.
    Другой аспект, который Вам нужно рассмотреть перед тем как учить определённый язык программирования, это совместимость. Вы хотите чтобы Ваши приложения работали на Windows, Linux, Mac? Или же Вам достаточно совместимости (приложений) с Windows или другим окружением? В большинстве случаев это будет лёгкий выбор.
    Начинающие восновном Выбирают язык программирования, который будет работать на их текущей операционной системе.
    Можете ли Вы найти много информации по языку программирования который Вы выбрали? Какие типы книг, интернет руководств, и документации доступны для языка программирования который Вы выбрали.
    Вам нужно что-то, откуда Вы будете брать информацию и документация основное место откуда Вы будете черпать информацию.
    Хотя всегда хорошо иметь сообщество (которое разбирается в языке который Вы выбрали), большинство онлайн сообществ это форумы, IRC, и "Жаба":)
    Помните что Google тоже Ваш друг. Найдите руководства, книги и сообщества(форумы etc).
    Тип языка программирования также важен. Существует три главных типа языков программирования(возможно и больше). Первый тип это языки Web программирования. WEb языки, это коды которые создают веб приложения.
    Когда Вы открываете Ваш internet-браузер, например IE или FireFox, он читает этот код, и отображает сайты базированные на инструкциях к браузеру.
    Второй тип - это интерпретируемые языки. Многие Web языки также входят в эту категорию. Интерпретируемый язык, это язык, код которого обрабатывается и выполняется компьютером.
    Третий тип - компилируемый язык программирования, является отличным от второго. Компилирование приложения, значит что вы должны "пропустить" исходный код приложения через специальную программу, называемую "компилятором".
    Компилятор кодирует читабельный исходный код в код из единиц и нулей, читабельный для компьютера. Затем приложение можно запустить и тестировать.
    Также мы бегло пройдёмся уровням языков программирования. Компьютер не понимает исходный код, а понимает только код из единиц и нулей.
    Когда о языке говорят как о "низкоуровневом" то это значит что его исходный код больше связан с кодом из нуля и есдиниц. Если язык "высокоуровневый", то это значит что его исходный код ближе к читабельному.
    Преимущество низкоуровневого программирования заключается в его скорости и мощности. Проблема в том что вы не захотели бы программировать всю видео игру на низкоуровневом языке, потому что код будет очень длинным и тяжёлым к пониманию.
    Не делайте большое ударение именно на выборе языка программирования. Если это Ваше хобби пробуйте любой язык который Вам понравился. Если же Вы хотите стать программистом или внедрится в среду информационных технологий, выбирайте язык который поведает вам больше о программировании.
    Существует вероятность что это не последний язык программирования который Вы освоите. Как только вы освоите основы и техники программирования, Вы сможете легко выучить новый незнакомы для Вас язык программирования.
    Самое главное заключается в том, что вы должны наслаждаться тем что делаете. Если же нет то зачем тогда всё это?
    Обзор языков программирования.
    Теперь я сделаю обзор нескольких популярных языков программирования. Также я захвачу несколько Web языков. Также Вы должны заметить что это не совсем языки программирования. Некоторые являются языками скриптов, другие же языки "разметки". Это не полный обзор этих языков. Вы должны более обширно рассмотреть тот язык который Вас заинтересовал.
    Это не полный список языков! Я старался включить большинство языков, но их так много, что список был бы слишком большим и приводил бы новичков в замешательство. Для полных списков пройдите по следующим ссылкам:
    http://www.scriptol.com/programming/choose.php
    http://en.wikipedia.org/wiki/Alphabetical_list_of_programming_languages

    * = я бы посоветовал в качестве хобби или новичкам.
    ** = советую студентам для более глубокого изучения.

    Web-приложения

    * HTML
    Тип: язык разметки
    Уровень сложности: лёгкий
    Инструмент для: Веб приложений
    Совместимость: Работает с любым браузером и операционной системой
    Документация: Много онлайн руководств. Не вижу потребности в покупке книги.
    Ссылки:www.w3schools.com
    Заметки: Всё что Вам потребуется это приложение "Блокнот" и веб-браузер.

    *СSS
    Тип:Разработка стиля страниц
    Инструмент для: Веб приложений
    Уровень сложности: Лёгкий
    Совместимость: Работает с большинством современных браузеров.
    Документация: Много онлайн туториалов. Не помешает купить книгу.
    Ссылки:www.w3schools.com
    Заметки:Всё что Вам потребуется это приложение "Блокнот" и веб-браузер.

    Javascript
    Тип: Язык скриптов
    Инструмент для: Веб-приложений
    Уровень сложности: средний
    Совместимость: Кроссплатформенный. Обрабатывается браузером.
    Документация: Хорошие онлайн туториалы. Не помешает купить книгу.
    Заметки:Даёт Веб-разработчикам язык скриптов чтобы работать с веб страничками. Может создавать вылетающие окошки или блоки, или активировать html формы.


    PHP
    Тип: язык скриптов
    Инструмент для: Веб-приложений
    Уровень сложности: Средний
    Совместимость: Код обрабатывается сервером.
    Документация: Хорошие онлайн тутортиалы. Не помешает купить книгу для более глубокого изучения.
    Ссылки:www.w3schools.com
    Заметки: Хорош для доступа к базам данных.

    ASP
    Тип: язык скриптов
    Инструмент для: Веб приложений
    Уровень сложности: средний
    Совместимость: Код запускается на сервере.
    Документация: Хорошие онлайн туториалы. Не помешает купить книгу для более глубокого изучения.
    Links: www.w3schools.com
    Заметки: Технология Microsoft. Мощное средство для создания динамичных и интерактивных веб страниц. Код обрабатывается сервером, пользователь не может просмотреть исходный код, что обеспечивает большую(ударение на второй слог) безопасность.

    Компьютерные приложения:

    *Python
    Тип: интерпретируемый
    Уровень: высокоуровневый
    Инструмент для: всего
    Уровень сложности: лёгкий
    Совместимость:кросс-платформенный
    Документация:Много документации, книг, и веб туториалов.
    Ссылки: www.python.org
    Заметки: Лёгкий к изучению, очень мощный. Можно почти всё сделать при помощи этого языка. Хорош для начинающих.

    Perl
    Тип: интерпретируемый
    Уровень: Высокоуровневый
    Инструмент для: обработка текстов, CGI скрипты, автоматизирование задач
    Уровень сложности: средний
    Совместимость:кросс-платформный
    Документация:много книг и онлайн туториалов
    Ссылки: www.perl.com

    Ruby
    Тип: интерпретируемый
    Уровень: высокоуровневый
    Инструмент для: Web скриптов
    Уровень сложности: средний
    Совместимость: кросс-платформный
    Документация: достаточно
    Ссылки: www.ruby-lang.org/en/
    Заметки: Плюс в том что имеет адаптацию больше к человеческой структуре мышления чем к компьютерной, тоесть человек легко понимает код.

    VB / VB.net
    Тип: компилируемый
    Уровень: высокоуровневый
    Инструмент для: приложения Windows
    Уровень сложности: лёгкий
    Совместимость: Windows
    Документация: Достаточно документации предоставляет Microsoft. Также дополнительную информацию можно найти в книгах.
    Ссылки: msdn.microsoft.com/en-us/vbasic/default.aspx
    Заметки:Не очень распространённый, но с его помощью можно быстро создать приложение под Windows. Не имеет уважения в кругах программистов.

    ** С/ С++
    Тип: компилируемый
    Уровень: средний
    Инструмент для: всего
    Уровень сложности: средний-высокий
    Совместимость: кросс-платформенный
    Документация: очень много
    Ссылки: www.cplusplus.com/doc/tutorial/ www.cprogramming.com
    Заметки: Уважаемый язык программирования. На то чтобы его понять нужно время, но оно вскоре окупается.

    * С#
    Тип: компилируемый
    Уровень: Высокоуровневый
    Инструмент для: всего
    Уровень сложности: средний
    Совместимость: Родная платформа - Windows, кросс-платформенный
    Документация: документации недостаточно
    Ссылки: msdn.microsoft.com/en-us/vcsharp/aa336809.aspx
    www.microsoft.com/express/vcsharp/
    mono-project.com/Main_Page
    Заметки:Не напрямую компилируется в машинный код.

    Java
    Тип: компилируемый
    Уровень:высокоуровневый
    Инструмент для: всего
    Уровень сложности: средний-сложный
    Совместимость:кросс-платформеннный
    Документация: достаточно
    Ссылки: java.sun.com/docs/books/tutorial/
    Заметки: Я слышал и плохие и хорошие отзывы. Не думаю что это хороший выбр для новичка.

    ** Assembly
    Тип: компилируемый
    Уровень: низкоуровневый
    Инструмент для: специфических сфер деятельности
    Уровень сложности: лёгкий (но с*к@ объёмный) (с)Хeл
    Совместимость: Для каждой архитектуры процессора есть своя версия
    Документация: достаточно
    Ссылки: webster.cs.ucr.edu
    Заметки: Имеет назначение для урезанных систем(что угодно начиная со стиральных машин, заканчивая телевизорами).

    Delphi

    Тип: компилируемый
    Уровень:высокоуровневый
    Инструмент для: всего
    Уровень сложности: средний
    Совместимость: Win
    Документация: достаточно
    Ссылки: http://info.borland.com/devsupport/delphi/

    Prolog
    Тип: компилируемый
    Уровень: Высокоуровневый
    Уровень сложности: сложный
    Совместимость:кросс-платформенный
    Документация: достаточно
    Ссылки: http://www.swi-prolog.org/pldoc/index.html

    Lisp
    Тип: компилируемый
    Уровень: высокоуровневый
    Уровень сложности: сложный
    Совместимость: реализации существуют для большинства платформ
    Документация: достаточно
    Ссылки: http://www.lispworks.com/documentation/common-lisp.html

    [outro]​

    Надеюсь я проделал эту работу не зря и Вы узнали что-то новое или, что ещё лучше, определились с выбором языка программирования.
    Статья в оригинале _http://www.hackthissite.org/articles/read/1038
    Translation by hookman специально для xaker.name(c)
     
    Последнее редактирование модератором: 3 ноя 2010
    28 апр 2009
    5 пользователям это понравилось.
  2. Hookman
    Hookman Guest
    Хватит флудить в теме. Комментарии только касательно данной статьи, если нашли ошибку или хотите что-то добавить - милости прошу.
     
    1 ноя 2010
  3. ~|~евто|-|
    ~|~евто|-| Silentium Новичок
    Симпатии:
    32
    Delphi нету... =\

    Prolog'a, Lisp'a, ...

    //А вот и первый доброволец!
    //пиши описание, добавлю!


    // А оберточная бумага есть?
    // Если напишу описание, это все же будет наверное моя статья.


    //Это не моя статья. Это мой перевод. Как думаешь, кто напишет грамотнее описание по Делфи, ты или я?

    //Таки я и не претендую, я всего поправил и дал направление для изысканий. :)

    //Попробую дополнить, как руки дойдут:)
    //Молодёжь! Вот как надо флудить! Всё в одном сообщении! Дерзайте:)


    //Вот, наконец-то) Понял, что "тема сисек не раскрыта") И нужно дорабатывать)))
     
    Последнее редактирование: 1 ноя 2010
    1 ноя 2010
  4. Iindigo
    Iindigo Guest
    Hookman,
    держи спасибу. Лично для меня информация очень полезна.
    В качестве изучения основ взять питон, а затем перейти на С++, можно пойти таким путём, не возникнут грабли?

    Кстати, в последнем слове опечатка :)
     
    Последнее редактирование модератором: 2 ноя 2010
    1 ноя 2010
    1 человеку нравится это.
  5. Hookman
    Hookman Guest
    Добавил Delphi, Prolog, Lisp. Очепятки исправил.
     
    3 ноя 2010
    1 человеку нравится это.
  6. Dr. MefistO
    Dr. MefistO Крывіч Глобальный модератор
    Симпатии:
    90
    А об Интале ни слова)
     
    23 дек 2010
  7. Mei
    Mei Guest
    Тогда уж и Фортран и Brainfuck добавить xD
     
    23 дек 2010
  8. myzZzQ
    myzZzQ Guest
    Плин как я пропустил эту тему(((
    Я ток что создал тему Какой язык программирования мне учить?(епт)

    тему твою закрыл (с) Koller
     
    Последнее редактирование модератором: 23 дек 2010
    23 дек 2010
  9. Elena2364
    Elena2364 Новичок
    Симпатии:
    0
    vbv рулит
     
    1 апр 2011
  10. orienteer
    orienteer Guest
    Делал краткий обзор о Ruby, старался на простом языке, в качестве примера - нахождение простых чисел решетом Эрастосфена

    Ruby – это интерпретируемый скриптовый язык для простого и быстрого объектно-ориентированного программирования.
    История
    •Ruby начал разрабатываться 24 февраля 1993 года и вышел в свет в 1995 году.
    •Ruby был задуман японцем ЮкихироМацумото, стремившимся создать язык, совмещающий все качества других языков, способствующие облегчению труда программиста.
    •Название навеяно языком Perl, многие особенности синтаксиса и семантики из которого заимствовано в Ruby: англ. pearl — «жемчужина», ruby — «рубин».
    •Целью разработки было создание «настоящего объектно-ориентированного», лёгкого в разработке, интерпретируемого языка программирования.
    Юкихиро Мацумото (Yukihiro Matsumoto): “Ruby работает на многих платформах, включая Linux и многие реализации Unix, MS-DOS, Windows 9x/2000/NT, BeOS и MacOS. Главная цель Ruby - эффективность разработки программ, и пользователи найдут, что программирование на нем эффективно и даже забавно.”
    Предназначение.
    Ruby подходит для решения очень широкого спектра задач, за счет огромного числа расширений, которые можно подключать динамически, в последние время часто применяется для написание серверной части сайтов, например в качестве замены php или asp.
    Особенности языка
    •Интерпретируемый язык:
    –возможность прямого осуществления системных вызовов
    –мощная поддержка операций со строками и регулярными выражениями
    –немедленная обратная связь во время разработки
    –отсутствие стадии компиляции
    •Простое и быстрое программирование:
    –отсутствие необходимости объявления переменных
    –переменные не типизированы
    –простой и последовательный синтаксис
    –автоматическое управление памятью
    ООП в Ruby
    •Всё есть объект. Класс - тоже объект. Класс класса – объект. Даже имя класса есть экземпляр класса Class.
    •Классы, методы, наследование, полиморфизм, инкапсуляция и так далее.
    •Методы-одиночки.
    •Примеси при помощи модулей (возможность расширить класс без наследования).
    •Итераторы и замыкания.
    •Широкие возможности метапрограммирования.
    Основное назначение Ruby — создание простых и в то же время понятных программ, где важна не скорость работы программы, а малое время разработки, понятность и простота синтаксиса.
    Библиотеки и расширения:
    •Кроме мощных возможностей, встроенных в язык, Ruby поставляется с большой стандартной библиотекой.
    •В языке реализован простой и удобный механизм для расширения языка с помощью библиотек
    •В Ruby непосредственно в языке реализованы многие шаблоны проектирования
    •Может динамически загружать расширения, если это позволяет операционная система.
    Плюсы
    •Неограниченный диапазон значений целых чисел.
    •Модель обработки исключений.
    •Все операторы возвращают значения, даже управляющие структуры.
    •Динамическая загрузка.
    •Механизм перехвата исключений.
    •Поддержка потоков; как собственных, так и систем семейства UNIX.
    Минусы
    •Неуправляемость некоторых процессов (таких, как выделение памяти), невозможность задания низкоуровневых структур данных или подпрограмм.
    •Невозможность компиляции и сопутствующей ей оптимизации программы.
    •Открытость исходного кода даже в готовой программе (есть средство упаковки исходного кода в .exe-файл под Windows);
    •Следствие двух первых недостатков — весьма низкая скорость запуска и выполнения программ.

    Пример (решето Эратосфена)

    max = Integer(ARGV.shift || 100)
    sieve = [nil, nil] + (2 .. max).to_a

    (2 .. Math.sqrt(max)).each do |i|
    next unless sieve
    (i*i).step(max, i) do |j|
    sieve[j] = nil
    end
    end

    puts sieve.compact.join(", ")
     
    5 апр 2011
Загрузка...