Delhpi VS C++!!!
Но все говорят разное, но какой язык перспективнее, у какого языка больше возможностей(вообще хочу заниматься написанием игр)? То что легче Delphi говорят и пишут почти все, но если выбирать по легкости то одназначно-Basic:D :D !!!
:o Я начинающий прграммист, знаю чуть-чуть и Delphi и C++(:} ),но для более глубокого изучения нужно определиться с языком!
Но все говорят разное, но какой язык перспективнее, у какого языка больше возможностей(вообще хочу заниматься написанием игр)? То что легче Delphi говорят и пишут почти все, но если выбирать по легкости то одназначно-Basic:D :D !!!
Basic - для обучения программированию, самых азов.
Его лучше не трогай.
А вообще не парься и учи оба языка. Все-равно, рано или поздно, пригодится.
Из достоинств C++:
1) Более красивый код (хотя это дело вкуса).
2) Более удобный процесс написания (не парит писать :=, определяешь переменные, где хочешь, есть операция ++, перегрузка операций и т.п. приятные мелочи).
Где ещё можно скопировать строку вот так:
while (*s1++=*s2++);
3) Больше возможностей (это видно не сразу, но со временем понимание придет).
4) Традиционно, компиляторы c++ генерируют очень качественный ассемблерный код.
Из достоинств Object Pascal:
1) Более понятный код (более языкоподобный).
2) Гораздо более быстрая компиляция.
3) Даже не знаю, что еще написать :-)
Для критичных по времени задач используется C++, а для быстрой разработки прикладных программ используют Delphi/C++ Builder.
Кстати, c++ builder, хоть и c++, но, тем не менее, больше похож на Delphi.
А вообще не парься и учи оба языка. Все-равно, рано или поздно, пригодится.
Сразу два нет времени, а синтаксис я их обоих знаю.
Сразу два нет времени, а синтаксис я их обоих знаю.
Игрушки можно писать на всём. В дельфях для рисованной графики например есть компоненты DelphiX. Я вообще начинал с C++ и билдера потом пришлось пересесть на delphi, вобщем сейчас пишу на всём. Мой совет учи С++ Билдер там и С++ и интерфейс для разработки как у delphi. Поэтому и C++ знать будешь, и в будующем, если захочешь перейти на delphi, то особых проблем не будет.
Игрушки можно писать на всём. В дельфях для рисованной графики например есть компоненты DelphiX. Я вообще начинал с C++ и билдера потом пришлось пересесть на delphi, вобщем сейчас пишу на всём. Мой совет учи С++ Билдер там и С++ и интерфейс для разработки как у delphi. Поэтому и C++ знать будешь, и в будующем, если захочешь перейти на delphi, то особых проблем не будет.
Не люблю я с++билдер, а уже почти решил испльзовать С++.
Не люблю я с++билдер, а уже почти решил испльзовать С++.
Билдер тоже не нравится.
В принципе без разницы какой язык учить - лишь бы голова работала, алгоритмы хорошие составляла, а реализация - дело второе. В принципе все языки похожи - у всех есть if, for, while, do while, switch, функции и ООП ... Основное отличие - в синтаксисе и возможностях, семантика у всех почти одинаковая.
Так что проблем при переходе на delphi, думаю, не будет. Надо будет только привыкнуть писать := вместо = .
Не люблю я с++билдер, а уже почти решил испльзовать С++.
То есть в билдере, внутренний язык не С++ :) :) :)
В принципе все языки похожи - у всех есть if, for, while, do while, switch, функции и ООП ...
С очень абстрактной точки зрения может быть.
Простенький алгоритм на этом написать можно, а вот при написании более сложного, возникает много проблем связанных с нюансами языка, таких как разный набор функций, сообразительность компилятора и т.д.
Попробуй как нибудь после С++ перейти к примеру на VB. :) :) :)
Попробуй как нибудь после С++ перейти к примеру на VB. :) :) :)
Ну vb я вообще как серьезный язык не рассматриваю - простора ноль + интерпретируемость. Его можно использовать, разве что для макросов в Office.
Object Pascal и C++ почти равны по силе. Хотя OP и уступает немного.
А так, и тот, и тот дают ООП, указатели, основные конструкции. Суда же можно отнести и Java (хоть он и немного отличается от них).
Это как ездить на велосипеде, один раз научишься - никогда не забудешь.
По-поводу функций - существует множество библиотек для всех языков. Так что это не показатель.
А что имеется ввиду под сообразительностью компилятора? В любом случае, язык один, а компиляторов для него много. Надо только выбрать хороший.
Конечно, если переносить какую-нибудь систему с одного языка на другой, то простой заменой
Мое мнение таково: Каждому языку - своя ниша.
Я тут еще добавлю малехо к достоинством и недостаткам каждого из языков.
C++ традиционно считается более быстрым и подходящим для написания приложений низкого уровня, где требуется сравнительно небольшой объем кода, связанного с интерфейсом и сравнительно большой объем низкоуровневого кода (работа с ОС, расчеты, реализация протоколов, графические приложения, кстати).
Delphi, тем не менее, обладает рядом своих преимуществ. Во-первых, он нзаменим при написании приложений, требующих работы с базами данных и обладающими большим количеством кода, связанного с интерфейсом пользователя. То есть, всяческие системы автоматизации учета, АИС, АСУП и пр. Попробуйте-ка написать на с++ прилогу, в которой полторы-две сотни экранных форм! Сколько это займет времени? Правильно, ГОРАЗДО больше, чем на дельфях. А причин тут много:
1) ГОРАЗДО более удобная IDE-шка (можно сказать, самая лучшая, все остальные так или иначе с нее содраны).
2) Лучший подход к модульности приложения, поддержка Package'й.
3) Действительно большой и мощный набор компонентов, а уж сколько там сторонних разработок - просто немеряно!
4) Более быстрый компилятор, в конце концов.
5) Кроме того, не забывайте о кроссплатформенности
Delphi, появившейся в 6 версии и закрепленной в 7й.
6) Еще много чего, но обо всем написать невозможно в рамках форума. Тут разговору на пару дней распития пива, как минимум! ;-)
В минусах Delphi конечно же, относительно более низкая скорость выполнения программ (что на обычных приложениях, как правило, незаметно), и бо'льший расход памяти. Может, и еще чего подзабыл.
Так что идеального языка нет - для каждой задачи нужно подбирать свой. Для написания игр, насколько я знаю, больше подходит именно С++. Но создатель этого обсуждения поймет это только тогда, когда будет досконально знать ОБА языка. А для начинающих программеров вообще-то все равно.
Поэтому я бы присоединился к мнению Saris'а насчет того, что лучше всего начинать именно с C++ Builder - он является одной из лучших сред для C++ и, вместе с тем, очень тесно связан с Delphi. Эдакое связующее звено между двумя платформами. Выучив его, кроме знания С++, получаешь знание Delphi больше, чем на на 50%, т.к. там библиотеки один в один.
Под сообразительностью компилятора понимается например такой фокус:
Если в билдере написать например:
int a;
ShowMessage(a);
то ошибки не будет компилятор сам преобразует типы.
В дельфях же
var a: integer;
...
ShowMessage(a);
Приведёт к ошибке.
Подобных мелочей при пересадке с билдера да дельфю очень много и с определённого момента они начинают очень сильно доставать.
А по поводу VB это ты зря. С того момента как я начал интегрировать различные программы через COM, я понял что VB это не так плохо как выглядит.
Я тут еще добавлю малехо к достоинством и недостаткам каждого из языков.
C++ традиционно считается более быстрым и подходящим для написания приложений низкого уровня, где требуется сравнительно небольшой объем кода, связанного с интерфейсом и сравнительно большой объем низкоуровневого кода (работа с ОС, расчеты, реализация протоколов, графические приложения, кстати).
Интересное заявление. У каких народов и племен так традиционно считается? :D
Delphi, тем не менее, обладает рядом своих преимуществ.
Delphi - не язык, а среда разработки, так как её можно сравнивать с языком программирования?
Во-первых, он нзаменим при написании приложений, требующих работы с базами данных и обладающими большим количеством кода, связанного с интерфейсом пользователя.
Незаменим? Поосторожнее со словами... Преобладающее количество СУБД не имеет никакого отношения к Delphi.
Более того, раз уж мы говорим о ЯП (C++ и ObjectPascal), то оба этих языка не заточнеы специально под БД, как например SQL. Так что здесь все решается наличием соотв. библиотек, а не самим ЯП. Да, в VCL включены визуальные компоненты для работы с СУБД, но это не значит, что VCL идеально подходит для создания серьезных систем, исполдьзующих БД. Редактор документов Word содержит встроенный графический редактор, но я что-то не слышал, чтоб кто-то пользовался Word-ом для создания дизайнерских работ.
Попробуйте-ка написать на с++ прилогу, в которой полторы-две сотни экранных форм!
Программа, в которой "полторы-две сотни экранных форм" - это пример плохой архитектуры и дизайна программной системы. Я бы посоветовал изучить литературу по проектированию UI. Серьезный, удобный интерфейс, заточенный под целевого пользователя, не создать путем перетаскивания стандартных компонентов на форму. Кстати, у множества программ, созданных с использованием VCL, имеются баги с масштабированием как при изменении размеров окна, так и при изменении размеров системного шрифта. Есть и другие "странные особенности"...
А причин тут много:
1) ГОРАЗДО более удобная IDE-шка (можно сказать, самая лучшая, все остальные так или иначе с нее содраны).
Кстати, ты видел Qt-desiner? Вот с нее как-раз и содран редактор форм.
2) Лучший подход к модульности приложения, поддержка Package'й.
Поподробнее, пожалуйста. Что есть Package и чем он лучше библиотек?
3) Действительно большой и мощный набор компонентов, а уж сколько там сторонних разработок - просто немеряно!
Если "компоненты" - это "визуальные компоненты", то я уже говорил, что чаще требуется создание интерфейса, содержащего более сугубые, а не общие компоненты.
Про сторонние разработки не понял. Ты о различных библиотеках готового кода? Так для C++ их будет поболее.
4) Более быстрый компилятор, в конце концов.
Ты проверял? Какой компилятор С++ рассматривал? На каком тестовом примере? Какого размера и сложности?
5) Кроме того, не забывайте о кроссплатформенности Delphi, появившейся в 6 версии и закрепленной в 7й.
Все же, ты о ЯП или библиотеках GUI?
В каком контексте ты употребляешь слово "кроссплатформенность"?
Существует множество кроссплатформенных GUI-библиотек написанных на С++. Уверен, что их значительно больше, чем для ObjectPascal.
6) Еще много чего, но обо всем написать невозможно в рамках форума. Тут разговору на пару дней распития пива, как минимум! ;-)
Вот именно, сплошной балаган и ничего четко сформулированного.
C++ Builder - он является одной из лучших сред для C++ и, вместе с тем, очень тесно связан с Delphi.
Кстати, такая "тесная связь" и мешает освоить С++ на подобающем уровне, т.к. нет практики применения ни множественного наследования, ни шаблонов.
Эдакое связующее звено между двумя платформами.
Какими платформами?
Выучив его, кроме знания С++, получаешь знание Delphi больше, чем на на 50%, т.к. там библиотеки один в один.
Эта библиотека IMHO морально давно устарела, как и основной её принцип.
Под сообразительностью компилятора понимается например такой фокус:
Если в билдере написать например:
int a;
ShowMessage(a);
то ошибки не будет компилятор сам преобразует типы.
В дельфях же
var a: integer;
...
ShowMessage(a);
Приведёт к ошибке.
Ну называется это не "сообразительностью компилятора", а неявным преобразованием типов, что является частью типовой безопасности ЯП. Кстати, компилятор С++ как раз таки выдаст ошибку, если не существует операции преобразования для данных типов. Какой тип параметра метода ShowMessage?
Подобных мелочей при пересадке с билдера да дельфю очень много и с определённого момента они начинают очень сильно доставать.
Интересно, а как "пересадить" с С++ на ObjectPascal такую запись:
typedef std::map<int, vector<char> > TStrMap;
Теперь я хотел бы высказать свои взгляды на достоинства этих языков, именно ЯП, а не средств разработок, библиотек и т.п., что постоянно мешают в одну кучу.
Основное достоинство С++ - абстрактность и относительно четко сформулированная типовая безопасность.
Основное достоинство ObjectPascal - доступность для начинающих, т.к. этот язык для учебных целей и разрабатывался.
Кстати как узнать какая из функций, выполняющих задачу работаетбыстрее? 8)
Ну называется это не "сообразительностью компилятора", а неявным преобразованием типов, что является частью типовой безопасности ЯП. Кстати, компилятор С++ как раз таки выдаст ошибку, если не существует операции преобразования для данных типов. Какой тип параметра метода ShowMessage?
Это понятно. Я говорил про данный пример в данной среде разработки. VC на это скорее всего и выдаст ошибку.
Интересно, а как "пересадить" с С++ на ObjectPascal такую запись:
typedef std::map<int, vector<char> > TStrMap;
Я говорил не про перенос кода, а про перенос себя любимого на пару с мозгом. Просто когда переходишь с более цивильного языка, на котором писал не один год, на другой, то возникает куча подобных мелких проблем, которые со временем уходят, но поначалу сильно достают.
Некто Green не поленился довольно обстоятельно обхаять мои письмена. Сразу скажу, что у меня нет достаточно времени, чтобы высказать свое мнение по каждому из затронутых пунктов, поэтому не нужно писать, что я нечетко формулирую свои мысли. Я пользуюсь этим форумом в рабочих целях и заниматься подробными обсуждениями мне некогда.
Я не являюсь ярым приверженцем ни одной из систем разработки или языков (Delphi, C, С++, С#, Java и пр.) хотя, так как в основном пришлось работать на Delphi, то я и подчеркнул именно его преимущество. Целью моего сообщения было предоставить создателю этой темы более полную информацию об одном из языков, указанных в subj. А переводить эту тему в ранг ожесточенной дискуссии я не собираюсь, так что Green может более не утруждать себя ответом.
Delphi - не язык, а среда разработки, так как её можно сравнивать с языком программирования?
1) В общем-то я, в основном, сравнивал именно среды, т.е. Delphi, C++Builder и Visual С++, как наиболее мощные и полно реализующие два языка.
2) Сам язык без среды разработки - это как процессор без материнской платы, памяти, жесткого диска, видюхи и всего прочего. Хоть он и является главнейшей частью системы, но от самого языка как такового толку мало. Кстати, начиная с версии 7.0 язык Object Pascal уже назsвается Delphi.
Незаменим? Поосторожнее со словами... Преобладающее количество СУБД не имеет никакого отношения к Delphi.
Более того, раз уж мы говорим о ЯП (C++ и ObjectPascal), то оба этих языка не заточнеы специально под БД, как например SQL. Так что здесь все решается наличием соотв. библиотек, а не самим ЯП. Да, в VCL включены визуальные компоненты для работы с СУБД, но это не значит, что VCL идеально подходит для создания серьезных систем, исполдьзующих БД.
Я и не говорил, что сам язык имеет встроенные фичи под БД или SQL. Для этого - пожалуйста, FoxPro, Clipper и иже с ними. Я имел в виду то, что на Delphi, по моему мнению, проще оперировать с крупными проектами, активно работающими с базами данных. Прошу отметить, что в своем мнении я опираюсь на личный опыт и опыт своих коллег по разработке таких систем в течение не одного года. Я не отношусь к числу тех людей, которые норовят вставить свое "умное" мнение буквально по любому вопросу, даже толком не вникнув в суть вопроса.
Программа, в которой "полторы-две сотни экранных форм" - это пример плохой архитектуры и дизайна программной системы. Я бы посоветовал изучить литературу по проектированию UI. Серьезный, удобный интерфейс, заточенный под целевого пользователя, не создать путем перетаскивания стандартных компонентов на форму. Кстати, у множества программ, созданных с использованием VCL, имеются баги с масштабированием как при изменении размеров окна, так и при изменении размеров системного шрифта. Есть и другие "странные особенности"...
Молодой человек, вот ты такой умный здесь. Скажи-ка лучше, что ты сам сделал? Книжки мне советуешь, может, еще и ликбез мне проведешь? Я понимаю, что есть некоторые приложения, где перегруженность интерфейса свидетельствует о низком уровне их проектирования. Но советую тебе заглянуть в любую бухгалтерскую систему - 1С, Navision Attain, Aczapta, или хотя бы в Office Tools - ту, которую производит наша фирма (gmsc.dp.ua). При всем желании сделать все как можно проще и красивее, эта махина очень быстро разрастается так, что даже ее разработчики начинают в ней путаться.
Кстати, насчет багов с масштабированием или с ресайзом - так про эти баги не слышал я ничего за те пять лет, как юзаю дельфю. Хотя руки.сис обновлять нужно регулярно - помогает.
Поподробнее, пожалуйста. Что есть Package и чем он лучше библиотек?
1) Этот вопрос свидетельствует о том, что ты ничего не знаешь о Packag'ах, которые были введены еще в 95-96 годах в третьей версии дельфей, или даже еще раньше (а сейчас уже на рынке восьмая, как-никак). Соответственно, и с самой средой Delphi ты знаком, скорее всего, лишь поверхностно. Зато ты очень преуспел в неконструктивной критике всего и вся, кроме любимого C++.
2) Библиотеки в Delphi делаются не хуже, чем в любом другом языке. А Package - это расширенная (средствами Borland) стандартная DLL, которая, кроме кода, еще включает подробную информацию о типах. Вроде как TypeLibrary, только вкупе с объектным кодом. Я не говорю, что это супер-замена DLL. Просто они облегчают разработку, испольдование, распространение и поддержку библиотек компонентов. О пакетах я упомянул вскользь, чтобы более аргументировать мысль, что в Delphi хорошо реализован модульный подход.
В общем, резюме такое - не нужно разводить на форуме баталий по поводу, что лучше, а что хуже. Парень попросил совета, я высказал ему свое мнение, а точнее написал ему о преимуществах Дельфи, т.к. о преимуществах С ему уже достаточно написали. И подчеркиваю, выбор языка и среды разработки сильно зависит от требуемых задач. Каждому своя ниша.
Если бы я был на месте Green'а, я бы написал здесь, в каких задачах силен C++, какие у него преимущества и какие для него есть наилучшие среды (вместо обгаживания того, что написано другими). Мне, между прочим элегантность классовой модели и мощность C++ нравятся не меньше, чем остальным его защитникам.
Дальнейшую дискуссию считаю ненужной (по крайней мере, в рамках этой темы).
Я сразу сказал, что затронутая тема стара, как мир (по крайней мере, как рассматриваемые языки).
Согласен.
Я не являюсь ярым приверженцем ни одной из систем разработки или языков (Delphi, C, С++, С#, Java и пр.) хотя, так как в основном пришлось работать на Delphi, то я и подчеркнул именно его преимущество. Целью моего сообщения было предоставить создателю этой темы более полную информацию об одном из языков, указанных в subj. А переводить эту тему в ранг ожесточенной дискуссии я не собираюсь, так что Green может более не утруждать себя ответом.
Ну а я высказал свое мнение. Это не запрещается?
2) Сам язык без среды разработки - это как процессор без материнской платы, памяти, жесткого диска, видюхи и всего прочего. Хоть он и является главнейшей частью системы, но от самого языка как такового толку мало.
Не согласен.
Я имел в виду то, что на Delphi, по моему мнению, проще оперировать с крупными проектами, активно работающими с базами данных. Прошу отметить, что в своем мнении я опираюсь на личный опыт и опыт своих коллег по разработке таких систем в течение не одного года. Я не отношусь к числу тех людей, которые норовят вставить свое "умное" мнение буквально по любому вопросу, даже толком не вникнув в суть вопроса.
А вот мой опыт показывает, что не "крупные проекты", а наоборот лишь при "небольших проектах".
Некто Green не поленился довольно обстоятельно обхаять мои письмена.
Молодой человек, вот ты такой умный здесь. Скажи-ка лучше, что ты сам сделал? Книжки мне советуешь, может, еще и ликбез мне проведешь?
На IQ не жалуюсь... :)
Что за манера переходить на личности?
Я бы был только рад, если бы мне порекомендовали стоящую литературу.
Я понимаю, что есть некоторые приложения, где перегруженность интерфейса свидетельствует о низком уровне их проектирования. Но советую тебе заглянуть в любую бухгалтерскую систему - 1С, Navision Attain, Aczapta, или хотя бы в Office Tools - ту, которую производит наша фирма (gmsc.dp.ua). При всем желании сделать все как можно проще и красивее, эта махина очень быстро разрастается так, что даже ее разработчики начинают в ней путаться.
Я не считаю, что интерфейсы бухгалтерских систем являются хорошим примером пользовательского интерфейса. Сомневаюсь, что в них дизайну UI уделяется большое значение. IMHO из-за того, что делаются на скорую руку, либо неквалифицированными в этой области (облать дизайна UI) людьми.
1) Этот вопрос свидетельствует о том, что ты ничего не знаешь о Packag'ах, которые были введены еще в 95-96 годах в третьей версии дельфей, или даже еще раньше (а сейчас уже на рынке восьмая, как-никак).
Да, не знаю, и не смущаюсь этого. Спасибо, теперь буду знать.
Соответственно, и с самой средой Delphi ты знаком, скорее всего, лишь поверхностно. Зато ты очень преуспел в неконструктивной критике всего и вся, кроме любимого C++.
В своей критике я не высказываюсь и не критикую другие ЯП, а стараюсь отразить беспричинные нападки на С++ и показать явные его преимущества.
Поэтому в своих постах я лишь комментирую васказывания, а не выдвигаю свои постулаты о других ЯП.
В общем, резюме такое - не нужно разводить на форуме баталий по поводу, что лучше, а что хуже.
От части согласен. Хотя не скрою, что порой такие "баталии" приносят некоторое удовольствие и помогают четко сформированть и выстроить свои взгляды и мнения.
Парень попросил совета, я высказал ему свое мнение, а точнее написал ему о преимуществах Дельфи, т.к. о преимуществах С ему уже достаточно написали.
К сожалению часто пишут о спорных и несущественных преимуществах, поэтому я и включился в обсуждение.
Если бы я был на месте Green'а, я бы написал здесь, в каких задачах силен C++, какие у него преимущества и какие для него есть наилучшие среды (вместо обгаживания того, что написано другими). Мне, между прочим элегантность классовой модели и мощность C++ нравятся не меньше, чем остальным его защитникам.
Опять ты путаешь критику (пусть и резкую) с "обгаживанием". Не имею я ничего против тебя и твоего мнения. Так и хочется сказать: давайте жить дружно... но не тихо сопя в трубочку.
А по поводу преимуществ я достаточно часто повторяю: абстрактность + типовая безопасность (если ими правильно пользоваться).
Лучшая среда - та в которой тебе удобно, хоть FAR.
А вот используемые библиотеки и подходы - это уже другая тема для "баталий".
Дальнейшую дискуссию считаю ненужной (по крайней мере, в рамках этой темы).
Давай найдем другую :D