Off
Пользователь
11 сообщений
Мужчина
|
К данному размышлизму меня подтолкнули постоянные вопросы продвинутых пользователей, желающих не только запускать программы, но и самостоятельно создавать их.
Может быть, я и не стал бы писать все это, если бы не одно наблюдение: вопрос "какой язык программирования изучать в первую очередь" не только не теряет своей актуальности, а даже наоборот - становится все чаще встречающимся на просторах Сети.
Также не могу не вспомнить здесь фразу Конфуция: "Дай человеку рыбу - и завтра он снова будет голоден, научи ловить рыбу - и ты прокормишь его на всю жизнь". Понятное дело, что на форумах и прочих чатах программисты зачастую называют тот язык, на котором пишут они сами, ведь сообщение в форумы большей частью пишутся спонтанно и "между делом". А здесь, в этом посте, я хотел бы порассуждать, логически обосновать все (сколько получится) "за" и "против" того или другого языка программирования. Только вот отталкиваться я буду не от конкретных языков и их возможностей, классификация будет совсем иная.
Вспомним, что программ существует великое множество. Они разные по размерам, по функционалу, платформе, на которой они работают и многому другому - различий очень много. Общим, пожалуй, остается лишь одно - все они созданы, чтобы облегчить человеку выполнение какой-либо задачи, это всего лишь инструменты для выполнения пользовательских задач.
Получается, что создавая какую-либо программу, имеет смысл подумать о том, для чего, кем и в каких условиях (на каком железе) эта программа будет запускаться. Это нужно для того, чтобы понять, каким инструментом (языком программирования) лучше всего воспользоваться, чтобы написать наиболее эффективное решение задачи (программу). И я как раз сейчас хочу разобраться с теми параметрами, по которым и можно выбирать язык программирования Минимизация сроков разработки.
И сразу пример. Допустим, Вам нужно написать еще одну версию пасьянса "Косынка" (помнится, Spider_NET с wwwnet во втором подкасте VR-Online совместно собирались :)). Такая программа в любом случае не будет потреблять большого количества ресурсов на более-менее современной машине, а значит, нет никакого смысла вспоминать ассемблерные команды и вручную гонять байты из регистра в регистр. Естественно, такой пасьянс, написанный на ассемблере, а не на Delphi или C# будет работать в десятки (или даже сотни) раз быстрее, и места в оперативной памяти будет занимать гораздо меньше, но... На разработку такого пасьянса уйдет в те же сотни раз больше времени. А ведь конечный пользователь не заметит разницы в скорости, да и особого напряга с оперативной памятью не испытает, а вот время, затраченное на разработку, будет потеряно. И времени этого будет много. Так что, если размер потребляемых машинных ресурсов не критичен, используйте высокоуровневые языки программирования - они помогут существенно уменьшить время разработки программы. Базовая платформа.
До недавнего времени особого вопроса в выборе платформы и не было - операционная система Windows царила везде и повсеместно. Сейчас же и Apple отгрыз свои почти 10% рынка, и Linux поклевывает, FreeBSD - и тот вилами тычет Windows'у куда-то под коленку. И это только десктопы/ноутбуки. А если взять мобильные телефоны? Смартфоны? Коммуникаторы? КПК? Как видим, не Windows единой бывает базовая платформа. А значит, перед тем, как выбрать язык программирования, на котором будет разработана программа, нужно хорошо представлять себе, на какой платформе (платформах) она должна будет работать. В этом случае, выбирать лучше всего тот язык программирования, для которого есть компилятор или интерпретатор на требуемых платформах. Наибольшую кроссплатформенность может показать Java, JavaScript, ActionScript (программирование во Flash), ну и, конечно, старые добрые C, C++, Pascal и иже с ними. Правда, в случае со "старыми добрыми" велика вероятность переписывания под каждую платформу той части кода, которая отвечает за графический интерфейс (за GUI, в общем), если, конечно, Вы не консольное приложение пишете. Популярность языка программирования.
Это, пожалуй, стоит учитывать любому программисту, пишущему "на продажу". Для начинающих популярный язык означает большое количество обучающего материала и, конечно, тематических форумов, где в проблемном случае можно спросить совета более опытных программистов. Для тех же, кто пишет программы "на продажу", популярность языка программирования - это большее количество заказов, ведь специализированные языки программирования и применяются для решения специализированных задач, значит, заказчиков на такие услуги будет меньше, даже если разделить общее количество заказов на количество программистов, способных эту задачу решить и согласных взяться за ее решение. Ну и непосредственно для начинающих.
Развитие языков программирования все больше и больше стремится к переходу от машинного языка к человеческому. Может быть и стоит выучить тот же ассемблер или C, но, в большей части только для того, чтобы понимать, как "думает" компьютер. Для повседневной же разработки все чаще и все больше применяются языки программирования, которые позволяют писать буквально нормальными и понятными каждому человеку предложениями. Именно для этого было создано то же объектно-ориентированное программирование, которое позволяет писать довольно сложные программы, используя уже запрограммированные модели, максимально приближенные к объектам реального мира. Не нужно изобретать велосипед.
Современные средства разработки позволяют делать очень многое, не вникая в принципы работы компьютера вообще и операционной системы в частности. Стандартные библиотеки языков программирования позволяют делать очень многое, нужно только знать, что же может делать та или иная библиотека. Поэтому, перед тем, как начинать писать килобайты кода, поищите, может быть, Ваша проблема решается парой-тройкой строчек с использованием уже написанных и отлаженных функций языка. Не поленитесь изучить мануал той библиотеки, которую собираетесь использовать, особенно если собираетесь работать с ней более-менее постоянно, время, потраченное на изучение, с лихвой окупится при разработке программ.
С какого языка начинать изучать программирование - зависит только от того, чего Вы хотите добиться, научившись писать программы. И только после того, как эта цель будет определена - выбирайте. Лично я бы посоветовал для начала C#, все-таки .NET становится все более распространенным, а Windows, несмотря ни на что, держит подавляющую долю рынка. Если же Вас интересует веб-программирование, то для начала лучше ознакомиться с PHP, причем сразу с PHP5. Книг и статей по этим языкам сейчас более чем достаточно, уверен, ни для кого не составит труда найти обучающие материалы.
На заметку: Кстати, о велосипедах... надо будет дочке на следующий год купить детский велосипед, да и мне в плане поддержания своего программеро-фрилансерского тела в более-менее приличной форме не помешало бы обзавестись двухколесно-педальным средством передвижения. Ладно, будет лето - будет видно.
|
|