Если кого-нибудь вдруг заинтересует мнение профессионального программиста с десятилетним стажем.... то могу дать совет.
Если вы собираетесь в жизни заниматься околосистемным программированием или много писать под linux - изучайте с++ - лишним не будет. Но как язык для начального изучения программирования я бы его никому не посоветовал. И в целом его время проходит (как это не печально).
На Pascal время тратить не советую. Он актуален только для Delphi, а Delphi становится не акутальным сам по себе.
Если планируете заниматься программированием прикладным (а это 90% всей работы) - то у вас выбор между c# и Java. C# моложе и на данный момент имеет несколько больше возможностей, но среда .net пока переносимой является только условно. Оба языка превосходны, для обоих существуют развитые библиотеки и среды разработки. За C# стоит Microsoft, за Java сейчас стоит IBM. Еще один момент - они очень похожи - как на уровне платформы, так и по синтаксису. Неверного выбора тут быть не может.
Кроме того. профессиональный программист должен хорошо владеть SQL, но это уже отдельная песня.
Advanced member
Статус: Не в сети Регистрация: 09.06.2003 Откуда: USSR
Цитата:
Но как язык для начального изучения программирования я бы его никому не посоветовал.
Ну я тут не согласен, знаеш C++ значит сможеш спокойно писать на C#, Java, PHP И так далее. PAscak хорош, но времена Delphi боюсь подходят к концу, даже новый Delphi .NET врдяли его спасет из-за ну просто супер тяжелой оболочке в Delphi 2005. Я до сих пор так и не использую ее, хотя она очень удобна. Тот факт , что при загрузке гадина сьедает 200Mb оперативки и грузится на моей домашней (не слабой ) тачке больше 3 минут, не улучшит отношения к Delphi. Оптимальная вресия Delphi7, но так как Borland , в отличии от Microsfot сделал все хорошо, но изначально убого (в плане поддержки), то проживет он не долго Я вот лично до сих пор использую VS 6.0 так как под него спокойно ставятся все новые SDK, а попробуй тоже самое под Delphi сделать!?
Member
Статус: Не в сети Регистрация: 14.01.2004 Откуда: Киев, Украина
Вставить чтоли свои 5 копеек Временна досовских программ и сред разработок прошли, сейчас мы имеем вместе с тем же Visual C++ или Delphi - не просто синтаксис того или иного языка, но и огромную структуру(или среду) помимо того. Набор стандартных библиотек, преднаписаных классов, всевозможные обертки и т.д. Не так важно на чем начинать программировать и что учить далее. Ведь синтаксис - это только поверхность, он учиться довольно быстро, намного важнее понимания приемов программирования(думаю все поняли о чем я) и хорошее знание среды разработки(не просто синтаксиса).
Но всеже, поскольку Pascal применяеться сейчас только в Delphi, а он теряет позиции, то Pascal учить вообщем-то безперспективно. Лучше начинать с С(поскольку множество языков на нем основано, по сути Java/C# - его производные со своими заморочками), потом хорошо выучить ООП, напримере того же С++, ну и переходить на .net(C#, J#, VB.net - дело вкуса). Конечно не помешали бы основы ассемблера, чтобы хорошо понять MSIL.
Прикладное программирование под Windows, Microsoft подомнет полностью под себя(ИМХО), а большинство вакансий на рынке труда естественно это прикладное программирование(БД и т.д.). Системные, мультимедиа программисты востребованы в очень малом количестве, по этому этим можно заниматься как хобби, а ставку нужно делать на прикладное, увы.
Да и не понятно, что будет с системным программированием, что там Microsoft думает делать со своим API, хотя принцыпы остаються постоянными.
Как, однако, вы бурно реагируете на мое предложение не изучать c++, коллеги. Я даже мог бы поиронизировать по этому поводу, но сам буквально несколько лет назад считал точно также. Однако...
C# (к примеру) в изучении проще, чем с++. И при этом незначительно уступает в мощности (на подходе шаблоны, не забывайте). Не ватает в нем мелочей, зато есть очень полезные вещи вроде событий, делегатов, единой системы обработки исключений и т.д. Так зачем же нужно начинать с С? Просто, чтобы повторить ваш путь? Понять истоки? Но тогда нужно начинать с машинных кодов.
Дело прежде всего в том, что с++ сложен не только для изучения, но и для применения. "Много званых, да мало избранных". Держалась бы основная масса от с++ подальше - программы были бы намного надежнее. Зато на C# начинающий очень быстро сможет начать писать реальные программы - причем разные. И WinForms и asp.net и web-сервисы. А с с++ он очень нескоро выйдет за пределы "hello world".
И, наконец, главное - изучив Java или C#, за с++ сегодняшнему студенту можно будет (с большой долей вероятности) не браться вообще никогда в жизни. А вот обратное - крайне маловероятно. А съэкономленное время можно потратить на изучение JScript-а, к примеру.
Member
Статус: Не в сети Регистрация: 27.04.2003 Откуда: Москва Фото: 6
Авторитетно заявляю: сейчас имеет смысл изучать только два языка: С++ и Java, и лучше - оба.
Самый перспективный язык прикладного программирования - Java, он платформо-независим, безопасен, прост. Как говорит наш преподаватель по "языкам высокого уровня", это язык для домохозяек C# на 85% слизан с него, и не стоит поддаваться брэнду майкрософта - Java ничем не хуже.
С++ - самый гибкий язык, ориентированный на максимальную производительность (серьёзные игрушки, к примеру, пишут только на нём). Это не язык высокого уровня в чистом смысле - наряду с самыми прогрессивными высокоуровневыми возможностями он позволяет даже вставлять ассемблерный код. Это - большая свобода и ответственность программиста. И язык С++ не такой уж и старый - стандарт принят лишь 7 лет назад.
Так что для написания основной массы прикладного ПО следует изучать Java, для системного и низкоуровневого программирования - С++.
В Java самая большая трудность - большое число библиотек классов, которые следует изучить (на это, как показывает практика, уходят годы),
в C++ - ошибки, возникающие при написании сложных программ, и факт, что те преимущества, которые даёт С++ по сравнению с Java, реально нужны лишь очень опытному программисту, да и то, в меньшей части ПО.
Но должен заметить, что эти два языка сами по себе настолько похожи, что не так уж и важно, с чего начинать - потом станет ясно, какому языку отдать предпочтение.
Так что вот моё мнение.
Если намерение программировать серьёзное, то я бы предложил сначала просто С, потом С++ и параллельно Java (многие серьёзные программисты советуют изучать их совместно). И, если заинтересует вопрос производительности, ассемблер в контексте С++.
Если же хочется понять, а нужно ли оно вообще, то сначала С (в виду простоты), потом С++ (т.к. является расширением С), ну а там уже ясно будет.
Добавлено спустя 51 минуту, 43 секунды: Если в чём ошибаюсь, поправьте пожалуйста, всё-таки по профессии не программист, да и Java сам пока не владею.
Member
Статус: Не в сети Регистрация: 14.01.2004 Откуда: Киев, Украина
NONsens
Цитата:
Авторитетно заявляю: сейчас имеет смысл изучать только два языка: С++ и Java, и лучше - оба.
Уж позвольте не признать ваш авторитет
Цитата:
Самый перспективный язык прикладного программирования - Java, он платформо-независим, безопасен, прост. Как говорит наш преподаватель по "языкам высокого уровня", это язык для домохозяек
Не сказал бы, что вот он так уж прост. Дело в том, что если разрабатываемый продукт не являеться web приложением, либо не делает ставку на кросплатформенность, либо не являеться приложением для смартфона(и подобного рода вещичек), то Java в этом случае - как мертвому припарка. Особенно если критически важна производительность.
Цитата:
C# на 85% слизан с него
Большое заблуждение, C# не являетсья клоном Java. Хотя многое было повзаимствовано.
Цитата:
и не стоит поддаваться брэнду майкрософта - Java ничем не хуже.
В случаи технологии .net - это не просто знак бренда, уж если Microsoft начала продвигать технологию, она своего добьеться, особенно когда появилась пара неплохих инструмента. В следующей версии Windows обещают поднять скорость выполнения .net приложений на порядок.
Цитата:
возможностями он позволяет даже вставлять ассемблерный код
Ухты Вообщем-то в Delphi тоже есть BASM. А уж обращение к портам было даже в QBasic. Это еще не о чем не говорит.
Цитата:
Так что для написания основной массы прикладного ПО следует изучать Java
Скорее всего .net, если критично время разработки, но не критична производительность можно выбрать Delphi(Delphi .net). Наличие громоздкой виртуальной машины убивает производительность.
Mong
Цитата:
Так зачем же нужно начинать с С? Просто, чтобы повторить ваш путь?
У меня вообще путь очень странный: Basic, Pascal/Delphi, assembler, C++.
Цитата:
Понять истоки? Но тогда нужно начинать с машинных кодов.
Это уже ирония. Как показывает практика нужно изначально начинать с малого(но не затягивать этот процесс), а не лезть сразу в бредни, а то возникнет много трудностей.
Цитата:
И, наконец, главное - изучив Java или C#, за с++ сегодняшнему студенту можно будет (с большой долей вероятности) не браться вообще никогда в жизни.
Хотелось бы верить, а то писать на С++ почему-то крайне не приятно, а еще хуже - оконные приложения на MFC.
Обосную свое мнение почему необходимо начинать изучать программирование с С. Я вообщем убедился на своем примере. Очень было тяжело отвыкнуть от стиля бейсика при переходе на Паскаль, теперь же очень сложно писать на С++, не паскалевские программы. Под С++ необходимо иметь совершенно иной стиль программирования. И ИМХО этот стиль имеет много общего со стилем программирования на Java/C#, чем какой-либо иной.
Member
Статус: Не в сети Регистрация: 27.04.2003 Откуда: Москва Фото: 6
Daemon
Цитата:
Уж позвольте не признать ваш авторитет Smile
Забыл упомянуть, что учусь и работаю среди большого числа программистов-профессионалов, и, разумеется, немало с ними общаюсь.
Цитата:
Не сказал бы, что вот он так уж прост.
Он действительно "так уж" прост. Сам по себе. Как язык.
Цитата:
Большое заблуждение, C# не являетсья клоном Java. Хотя многое было повзаимствовано.
А я говорил - клон? Я сказал 85%.
Цитата:
Цитата: и не стоит поддаваться брэнду майкрософта - Java ничем не хуже.
В случаи технологии .net - это не просто знак бренда, уж если Microsoft начала продвигать технологию, она своего добьеться, особенно когда появилась пара неплохих инструмента. В следующей версии Windows обещают поднять скорость выполнения .net приложений на порядок.
Ну и что, что в винде дотнет приложения пошустрее явы будут? (хотя это не факт, хорошие вирт. машины, использующие динамическую компиляцию хотспотов, обеспечивают огромное повышение производительности Java; к тому же, Java-приложение можно откомпилировать, и никакая вирт. машина уже не будет нужна) Где же кросс-платформенность?
Цитата:
Ухты Very Happy
Вдумчивый человек мог бы догадаться, что я говорю не о возможности вставки асма как таковой, а о наличии средств любого уровня, от самого высокого до самого низкого, коим ассемблер и является.
Вообще, я не советую дотнет, т.к. сомневаюсь в его перспективности - ведь о перспективных языках идёт речь в этом треде. Майкрософт сейчас лидер, но кто гарантирует, что это продлится долго? А истинно платформо-независимые языки, уже получившие громадную популярность, не могут не быть перспективными.
Member
Статус: Не в сети Регистрация: 16.09.2004 Откуда: Севастополь
Блин во вы чудаки, си да си, вы чего самые умные ??? всё умирает - си остаётся .. бред и полная ерунда..
И паскаль тоже живёт и работает не хуже вашего дорого любимого си, ну ничем так паскаль не хуже, а в чём то и лучше. И не надо орать мол дельфи уже вчерашний день, я скока народу знаю на дельфи сидят и нормально. Может вы ещё начнёте орать типа perl отстой, полное фуфло.. не занимайтесь маразмом, я заметил что все сишники почему то агрессивно себя ведут по отношению к паскалю, может вы его боитесь а ? Или например скажем дружно lisp тоже мёртв ?
_________________ Есть ответы, которым лучше оставаться без вопросов...
Member
Статус: Не в сети Регистрация: 27.04.2003 Откуда: Москва Фото: 6
Hires Я лично не ору, что это вчерашний день, но зачем изучать эти паскаль/дельфи, когда есть более прогрессивные языки? А Си все советуют, т.к. из простых языков это наиболее похожий на современные высокоуровневые.
Добавлено спустя 5 минут, 54 секунды: Насколько я наслышан, на PERL геморно сложные проги писать, к тому же он опасен.
А LISP, как язык самого высокого уровня (ну может, пониже Пролога, не знаю), очень далёк от аппаратуры, и поэтому имеет ограниченную область применения.
Добавлено спустя 14 минут, 34 секунды: Паскаль/Дельфи - ещё не вчерашний день, но уже и не завтрашний
Advanced member
Статус: Не в сети Регистрация: 09.06.2003 Откуда: USSR
Hires Никто не гонить на Паскаль и Delphi. Сам сижу на всем этом , но по своему опыту знаю. Если бы я тогда давно в 1988 году начал бы не с Паскаля , а с Си. Сейчас бюы не мучался так как мучаюсь А так ак все эти годы я писал в основном на Паскале , то сейчас я вижу, что перспективы у Delphi практически нет. Если Borland Не одумается и не перестанет тащится за Microsoft, может тогда и выйдет нормальынй новый Delphi. А так ;( Как мне к примеру сейчас скомпилировать мой проект (какой нибудь большой к примеру) под Win 64? А никак! Зато писалось бы изначально на VC++, то неделю максимум и я бы имел готовую 64битную версию программы!
Advanced member
Статус: Не в сети Регистрация: 09.06.2003 Откуда: USSR
Цитата:
Ну так D8 поддерживает framework, чем не перспектива ?
Я лучше на C# буду писать чем на Delphi .NET. Послений это что-то ужасное, также как и C++ .NET. Вроде родное, а ничего не понятно . А вот С# действительно отличный язык, синтаксис изучается за пару часов и ты уже готов к программированию. Грубо конечно , но все же получше чем пытаться вникнуть во все переделки в Delphi .NET
Member
Статус: Не в сети Регистрация: 19.09.2004 Откуда: Львов,Украина
Абсолютно согласен с Mong. Сейчас новичкам нужно начинать с С# или Java.
Daemon
Цитата:
Не сказал бы, что вот он так уж прост. Дело в том, что если разрабатываемый продукт не являеться web приложением, либо не делает ставку на кросплатформенность, либо не являеться приложением для смартфона(и подобного рода вещичек), то Java в этом случае - как мертвому припарка. Особенно если критически важна производительность.
Поверте мне - очень прост А в ваших суждениях полно заблуждений и "штампов" касательно Java. Единственная область в которой Джаву нельзя применить это системное программирование и real-time системы. А про производительность я могу такую вещь упомянуть: знаете серию авиасимулятора "ИЛ-2 Штурмовик"? так вот движок игры написан на Java
Advanced member
Статус: Не в сети Регистрация: 09.06.2003 Откуда: USSR
Цитата:
так вот движок игры написан на Jav
Но это не значить , что он работает на Java, был взят синтаксис Java для работы скриптов, а не движка! Ты себе 3D движек на Java представляеш??? Другие производители игр используют синтаксис Си для скриптов.
Member
Статус: Не в сети Регистрация: 19.09.2004 Откуда: Львов,Украина
Ray Adams писал(а):
Цитата:
так вот движок игры написан на Jav
Но это не значить , что он работает на Java, был взят синтаксис Java для работы скриптов, а не движка! Ты себе 3D движек на Java представляеш??? Другие производители игр используют синтаксис Си для скриптов.
Там именно Java, об этом публично рассказал глава "Maddox Games" Олег Мэддокс. Да и многое на это указывает: они приглашают на работу Java-девелоперов, в папке игры лежит JRE, логи игры содержат типичные stacktrace сообщения об ошибках. Кроме того для первой версии игры была сделана кем-то ковырялка и можно было вытащить даже сорцы Ну а почему представить движок на Java тебе лично сложно? Чем принципиально он будет отличатся от сишного? Либы для OpenGL есть - взял да и написал Главное чтобы руки были на месте
Ray Adams На самом деле - есть примеры того, как java работает быстрее с++. Разумеется, последний всегда можно хардкорно оптимизировать - но кому это нужно?
Простой пример - вы задумывались о том, что происходит при выделении памяти из кучи? При интенсивном использовании выделения/освобождения памяти под объекты разного (но близкого) размера (особенно параллельно из разных потоков) работа с кучей становится крайне неэффективной (если не позаботиться о выделении раздельных куч для разных потоков и разных структур, что делается нечасто). А в системах со сборщиками мусора таких проблем попросту нет.
Кроме того, я не согласен с утверждением, что С - простой. С - скорее бедный язык, а это не одно и тоже. Он имеет все недостатки с++, не обладая его достоинствами. Ну вспомните хотя бы приемы работы со строками, "интуитивно понятный" синтаксис работы с указателями, выделение/освобождение памяти... Пример простого языка - JavaScript. Причем синтакис у него относится к тому же семейству.
NONsens
Цитата:
Авторитетно заявляю:
замечательно сочетается с
Цитата:
Как говорит наш преподаватель
потом идет весьма громкое (и снова очень авторитетное)
Цитата:
Вообще, я не советую дотнет, т.к. сомневаюсь в его перспективности
и шедевральное
Цитата:
Если в чём ошибаюсь, поправьте пожалуйста, всё-таки по профессии не программист, да и Java сам пока не владею.
Вы не обижайтесь, но у вас не пост, а комический номер какой-то получился...
Advanced member
Статус: Не в сети Регистрация: 09.06.2003 Откуда: USSR
IvanoBulo
Цитата:
Ну а почему представить движок на Java тебе лично сложно?
Потому и сложно, что Java тормоз, а 3D движек можно сравнить с real time системами.
Просто я не верю, что кто-то сможет такое сделать на Java так как это , по моему мнению, полное извращение. Добавлю, рчеь идет о 3D движке! А не о скриптовом движке в игре.
Member
Статус: Не в сети Регистрация: 19.09.2004 Откуда: Львов,Украина
Ray Adams писал(а):
IvanoBulo
Цитата:
Ну а почему представить движок на Java тебе лично сложно?
Потому и сложно, что Java тормоз, а 3D движек можно сравнить с real time системами.
Я надеюсь утверждение "Java тормоз" подкреплено какими-то реальными тестами производительности? Просто я к тому виду, что конечно Java будет медленнее чем тот же С++ в некоторых вычислениях, но общая разница производительности не будет такой чтобы заявлять что "Java тормоз". К тому же совсем уж критические участки можно заменить нэйтивом.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения