И снова заветное слово "кодинг", которое стало все чаще появляться на страницах Х. Что это? Где это? Как это? У многих возникает много вопросов. Но ответить на них очень просто, если узнать всю историю развития кодинга. Я не буду грузить тебя сухими фактами о разных языках, потому что их слишком много. Для понимания сути тебе нужно узнать только эволюцию основных языков и проследить изменения в подходе к кодингу.
Сначала бог создал Адама. Потом бог выдернул у него ребро и создал женщину. И началось развитие цивилизации. Адам родил Исака, Исак родил ... Не важно, кто кого родил. Главное, возникает вопрос: "Чем занималась Ева, когда мужики плодились?" :). А она грызла яблоки. Прошли времена и мужик перестал плодиться, переложив это на женщину.
И вот от скуки мужик изобрел компьютер. Но он оказался на столько глуп, что умел выполнять только простейшие команды. Немного поколдовав, человек наделил железку умением выполнять последовательности простых действий. Такие последовательности назвали программами. И железка ожила и поумнела. Но сколько человек не бился над железкой, сама она мыслить так и не захотела. Вот и приходится самому создавать программы, по которым железка до сих пор выполняет сложные задачи.
Компьютер - примитивное существо, которое мыслит нулями и единицами, из которых складываются числа. Так что все, что может делать микросхема в коробке, так это оперировать этими числами. Так и программы - это тоже числа, которые воспринимаются процем как команды к выполнению каких-то действий. Так появились программеры, которые писали последовательности команд для проца. Эти последовательности выглядели как простые цифры.
Итак, первые кодеры писали проги в машинных кодах. Тогда еще не было компиляторов и приходилось все писать числами. Ты даже представить себе не можешь, какой это адский труд. Постоянно держать в памяти таблицу машинных кодов - это тебе не таблица умножения. Например, тебе понятно число 8BC3. Нет? А это простая команда копирования между двумя ячейками регистров ebx в eax. Это просто пример, потому что тогда таких регистров еще не было и процы были на много проще.
Со временем компьютер стал умнеть. Он все так же оперировал числами, но делал это на много быстрее. Но программер - это человек, а не железка и ему очень тяжело создавать логику в числах. На много легче работать с привычными словами. Например, все ту же команду удобней записать как "скопировать ebx в eax". Но что делать, если компьютер не понимает слов, а только числа? Выход есть - написать такую прогу, которая будет превращать текст в машинные кода. Пусть железка сама создает байт-код. Такую прогу назвали компилятором. А язык, на котором писался текст проги назвали языком программирования.
И вот программеры объединились и написали первый компилятор. Эту пргу назвали assembler, что переводится, как "сборщик". Писать на нем практически так же, как и в машинных кодах, только теперь уже использовались не числа, а понятные человеку слова. Например, все та же команда копирования регистров теперь выглядела так: "mov eax, ebx". То есть цифры заменились на понятные слова.
Вроде все прекрасно и удобно, но почему-то среди кодеров возникли споры и разногласия. Кто-то воспринял новый метод с удовольствием. А кто-то забился в своей квартире и стал орать во весь голос, что настоящий кодер должен использовать только машинные кода. Любители языка аssembler кричали, что кодить стало проще и быстрее, а противники кричали, что программа написанная в кодах работает быстрей. Говорят, что эти споры доходили до драк и иногда лучшие друзья становились врагами.
Тогда никто не мог себе представить, чем же все может закончиться. Но время показало свое. С помощью Assembler программы писались быстрее, а это один из основных факторов успеха любой проги на рынке. Люди начинают пользоваться той прогой, которая выходит на рынок первой. Даже если более поздний вариант лучше, человека трудно переубедить перейти на другую версию. Здесь играет большую роль фактор привычки. К тому же, к тому моменту, когда кодер напишет свою первую версию в машинных кодах, кодер на assembler выпустит уже пару новых версий своей проги.
Вот так и получилось, что те, кто кодил на assembler превратились в убегающих вперед, а те кто кодил в машинных кодах превратился в вечно догоняющих, причем на кастылях :). В конце концов первые убежали на столько, что вторые не смогли догнать и мужественно скончались на середине дистанции, откинув копыта, перья и хвосты.
Вот тут начался бум. Языки программирования стали появляться один за другим. Так появились С, ADA, FoxPro, Fortran, Basic, Pascal и другие особи. Некоторые из них были предназначены только для детей, а некоторые и для профессиональных программеров. И тут споры перенеслись в другую плоскость - какой язык лучше. И этот спор длится уже около 30 лет и конца ему не видно. Некоторые говорили, что это Pascal, другие утверждали что С, ну а кое-кто кричал через окна психушки, что это Visual Basic :). Этот спор разделился на две части:
1. Какой язык самый лучший?
2. Что лучше - язык высокого уровня или низкого?
Первый спор не может закончится до сих пор. Каждый пытается доказать, что его язык кодинга самый крутой. Мне кажется, что этот спор не закончится никогда. В принципе, меня это устраивает, потому что это своеобразная конкуренция. Благодаря ей происходит развитие и мы летим вперед (лишь бы только тормоза не отказали:)).
Так все же, какой язык лучше? На этот вопрос я дам ответ, но только немного позже.
Наиболее интересным проходил спор: "Что лучше - язык высокого уровня или низкого?". Язык низкого уровня это тот, который наиболее приближен к командам процессора, то есть assembler. К языкам высокого уровня относят С, Pascal, Basic и др. Этот спор проходил в той же манере, как и спор между любителями аssembler и любителями кодинга в машинных кодах. Только теперь приверженцы assembler утверждали, что их код самый быстрый, а любители языков высокого уровня утверждали, что они напишут программу быстрей чем самый лучший кодер на assembler.
Спор продолжался достаточно долгое время. И опять победила скорость разработки и удобство языка программирования. Любителям assembler пришлось отступить, потому что теперь они превратились в догоняющих и не смогли угнаться за языками высокого уровня (одни тормоза уже сработали :)).
Конечно же нельзя сказать, что машинные коды и assembler на совсем ушли из нашей жизни. Они используются до сих пор, но в очень ограниченном количестве. Assembler используется только в качестве вставок для языков высокого уровня, а машинные коды используются для написания того, чего нельзя сделать компилятором (да и для написания самого компилятора они нужны). Ушедшие технологии живут и будут жить, но рядовой программер очень редко встречается с ними.
Следующей ступенью стало объектно-ориентированное программирование. Язык С превратился в С++, Pascal превратился в Object Pascal и так держать. И снова борьба, кровь, базуки, кинжалы. И снова скорость разработки против быстроты кода. Опять крики, споры, драки и оскорбления.
Война длилась несколько лет. Сколько программеров в ней полегло... Сколько времени загубленно... А результат - победила скорость и удобство разработки, т.е. объектно-ориентированное программирование (вот и еще одни тормоза сработали).
Последней крупной революцией происходящей в кодинге я считаю переход на визуальное программирование. Этот переход происходит прямо на наших глазах. Визуальность дает нам еще более удобные средства разработки для более быстрого написания кода, но проигрывает объектности по быстроте работы. Вот многие начинающие и стоят на перекрестке: "на лево пойдешь - голову потеряешь, на право пойдешь бабки найдешь".
Лидеров в визуальных языках является Borland, а приверженцем объектности остается Microsoft. Конечно же Билл пытается встроить в свои языки визуальность, но она примитивна по сравнению с такими гигантами, как Delphi, Kulix или C++ Builder. Это связано с изначальной дырой MFC, которая не может работать визуально. Нужна глобальная переработка кода, которую почему-то не хотят делать. Вот народ и стоит на двух атомных бомбах и ожидает взрыва одной из них. Как ты думаешь, какая бомба рванет? Что победит - скорость разработки или скорость кода? Я не буду отвечать на этот вопрос. История говорит сама за себя, а мы подождем подтверждение этому.
Я считаю, что прогресс не будет стоять на месте и переход на новые технологии кодинга рано или поздно состоится. Поэтому я уже перешел на Delphi. Если ты хочешь успеть за прогрессом, то ты тоже обязан вступить в партию любителей Boland. Выбирай любой из его компилев и ты не ошибешься. Для тебя есть все, что угодно Delphi, Kulix, JBuilder или C++ Builder. Как видишь у Бормана есть визуальные варианты всех языков и они действительно лучшие.
Я уже сказал, что самая лучшая технология - визуальность. Твоя среда разработки просто обязана быть визуальной, потому что за этим наше будущее. Если ты хочешь получить визуальность + мощь разработки, то твоя среда от Borland. С помощью языков этой фирмы можно сделать абсолютно все. Так что с этим мы покончили. Вирдикт окончательный и обжалованию не подлежит.
Мне осталось только ответить на вопрос: "Какой язык программирования лучше?". Я уже несколько лет пытаюсь ответить на этот вопрос, но окончательного решения вынести не могу. Даже у того же Visual C++ от Microsoft есть свои плюсы. Как это не смешно, но положительные стороны есть у всех. Вопрос остается только за тем, что ты будешь писать? Я могу дать примерно такую градацию:
1. Если ты будешь писать базы данных, проги общего значения или утилиты, то твой язак Delphi или C++ Builder.
2. Если это игры, то желательно Visual C++ или Watcom C плюс знание assembler. Но это не значит, что нельзя использовать Delphi или C++ Builder.
3. Если это будут драйверы и работа с железом, то тут критичен размер файла, а значит твой язык чистый С или assembler.
И все же большую массу прог занимают утилы и базы данных. А тут визуальность необходима, если ты не хочешь заниматься гемором.
Визуальные языки будут жить и за ними будущее и на данный момент единственным лидером здесь является Borland.
Нет, мы не будем стрелять по бабкам. Пускай живут, а то тебя кто-нибудь в старости тоже подстрелить. Я просто хочу еще раз сказать, что прогресс движется как скорый поезд и все тормоза слетают с него. Если ты не хочешь сработать тормозом, то ты тоже обязан двигаться вместе с прогрессом. Иначе ты можешь превратится в вечно догоняющего и останешься позади вагона.
Заметь, что все вечно догоняющие банкротятся. У них возникают проблемы и так появляется в сети громадное количество исходных текстов незаконченных проектов. Те кто пытается довести эти проекты до ума увязают в болоте по самые ниже пояса. А те кто переводит их на новые рельсы получает шанс догнать конкурентов.
Выбор остается за тобой. Только не сработай тормозом :).
На Delphi нет знаменитых коммерческих проектов!!!:
Некоторые считают, что на Delphi нет коммерческих проектов. Это не так. Если крупные корпорации пока еще не перешли на Delphi, то шароварщики уже давно его используют. Благодаря ему программеры одиночки могут конкурировать с крупными корпорациями и отнимать у них заветные зеленые.
Хотите пример? Далеко ходить не надо. Знаменитейший Windows Commander для Windows написан на Delphi. Не верите? Вот вырезка из помощи:
Windows Commander 3.0 was written utilizing Borland Delphi 1.0 (16 bit) and 2.0 (32 bit) ((c) 1993-96 by Borland International). The Drag&Drop-algorithms, especially the undocumented parts, were found in the very good book "Undocumented Windows", Andrew Schulman, Addison Wesley 1991.
The DPMI-handling for setting the volume label was taken from the book "Turbo Pascal fьr Windows - Object Windows", A. Ertl/R. Machholz, Sybex 1992. Only the algorithms were taken and rewritten in Pascal.
The ARJ and LHA code was translated by Mart Heubels (WinCAT PRO) and myself from public C sources to Pascal.
По некоторым сведениям, The Bat тоже написан на Delphi. Хотя официального подтверждения я не слышал, интерфейс проги это подтверждает.
А вы говорите, что проги на Delphi имеют громадные размеры. Две эти программки считаются одними из самых маленьких и функциональных в своем роде.
Парадокс:
В 2000 году продукты Inprise/Borland номинировались на награды в пяти наминациях журнала Java Developer's Journal.
1. Best IDE - JBuilder
2. Best Application Server - Inprise Application Server
3. Best Database - JDataStore
4. Best Java Middleware - VisiBroker
5. Most Innovative Java Product - JBuilder
JBuilder многими авторизованными изданиями признан как лучшая среда разработки Java приложений. Несмотря на это Visual J++ пользуется большей популярностью у крупных корпораций. Парадокс? Вот именно.
Меня такое положение уже не сильно удивляет. Microsoft уже не раз ловили и ругали за давление на своих партнеров. Я не удивлюсь, если и здесь присутствует то же самое. Хотя я не могу утверждать, что это так. Возможно это и результат хорошей рекламной компании. С Microsoft никто не может конкурировать.