Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Какой язык программирования лучший?
Форум программистов > Системное программирование > Другие
Страницы: 1, 2
muzshura
Вот все не могу выбрать, что мне изучать, так чтобы и самому было легко программы писать, и чтобы при поиске работы эти знания могли пригодиться. Пожалуйста как-то комментируйте свои ответы, то есть сразу ответьте на вопрос "почему?". Спасибо.
Серёга
Для: muzshura
для начала скажи какие задачи?
European
Для: muzshura
Лучший язык тот, которым ты в совершенстве владеешь
Normann
Я не отец но своим опытом поделюсь. Я начал с VB, очень легкий язык, можно быстро написать реальную программу (но не любую), которая будет очень полезна и принесет большой денежный доход, быстрее чем на каком либо другом языке. Постепенно понял что с этим языком мне не осознать тонкостей программирования и он очень НЕ гибкий, и стал изучать C++. C++ самый сложный язык высокого уровня, но он самый лучший, на нем писали все отцы, и системы на нем написаны. Сегодня я отдаю предпочтение именно этому языку хоть и VB знаю до сих пор лучше (потому что C++ сложен, а VB прост). Еще начал понимать что для лучшего понимания лучше Ассемблер в добавок выучить и попрактиковать. Еще есть один язык который очень помогает, это Английский язык, поскольку самая лучшая справка написана именно на нем.
European
Интересно, почему так долго нет ребят из .NET UG team smile.gif
Pasha
Для: Normann
VB, C++, ASM. Ты уже на 3-м уровне сумрака.
Для: muzshura
Согласен с Normann, начинать можно с VB, C# или с чистого C, что больше понравится, на уровне структурного программирования. Потом постепенно прокачиватся в сторону ООП и шаблонов.
Для: European
Думаешь, у нас должен быть рефлекс на слово VB? wink.gif
European
Цитата(Pasha @ 14:08:2007, 00:26 )
Думаешь, у нас должен быть рефлекс на слово VB?
*

biggrin.gif Да нет, просто некому C# расхваливать dry.gif
Azrael
Очень хорош Java. Во-первых, достаточно удобен, хотя и VB проще wink.gif , во-вторых кросс-платформенный, в-третьих, легко перейти на хардкорный C/C++.
IMHO, конечно.
LuMee
Для: muzshura
На другом форуме просто пофлудил, а тут отвечу более по существу smile.gif
Так вот, основы программирования (всякоразные базовые принципы и алгоритмы) можно изучать на любом процедурном языке. Я бы порекомендовал Pascal (сам с него начинал): достаточно прост в освоении и при этом позволяет получить все необходимые навыки. В принципе, ничто не мешает использовать в этой же роли Basic или С. Единственное, что лучше практиковаться на консольных приложениях, дабы на данном этапе не отвлекаться на вопросы создания графических интерфейсов.
Затем, не грех будет познакомиться с ASM и вообще постараться хотя бы приблизительно осознать принципы работы приложений на низком уровне (как происходит вызов процедур, что есть стек, переменная, как передаются параметры и т.п.). Возможно, увлечешься именно системынм программированием; в этом случае твой путь - ASM/C/C++.
Если системное программирование тебя не увлекло, ступай на следующий уровень - изучение ООП. Общие принципы опять-таки лучше усваивать на примере консольных приложений. Язык сойдет тоже почти любой, лишь бы поддерживал ООП: Delphi (да, он уже больше не Object Pascal), Java, C#.
Далее уже можно взяться за разные более продвинутые темы: создание пользовательских интерфейсов (не просто в визуальном редакторе компоненты разложить, а понять, как оно все в принципе устроено), работа с сетью, с базами данных (это вообще без вариантов - SQL обязан быть знаком каждому прикладному программисту wink.gif), создание веб-приложений.
Собственно, к этому моменту уже успеешь познакомиться с разными платформами и направлениями программерской мысли и сумеешь выбрать то, которое тебе больше по душе и которое в достаточной степени востребовано там, где ты планируешь искать работу.
Ну и наконец, последнее замечание: не следует рассматривать свой выбор в пользу той или иной платформы как приговор судьбы. В случае необходимости будет не так сложно переучиться с Delphi на .NET, с .NET на Java или наоборот. В конце концов, для разработчика главное - это аналитический склад ума, умение грамотно разложить задачу на составляющие и подобрать для них оптимальное решение, а уж освоение соответствующиего ЯП и сопутствующих библиотек - дело техники smile.gif
Gamlet
Я неплохо знаю ВБ, чуть чуть знаю С++. В ВБ разочароволся. Что делать? Доучивать С++ или выбрать что то из новых языков? Тогда какой? smile.gif
sax_ol
Цитата(Gamlet @ 23:08:2007, 13:10 )
В ВБ разочароволся

это почему? (просто интересно)
с++ нормальный выбор, но сам по себе язык ничего не значит, у него должно быть применение (во всех смыслах) и соответственно все вытекающее
Gamlet
Да я только сейчас серьёздно занялся переносом проги на другой компьютерю. Там с этим столько морроки (может знаешь как упростить) все активыксы, дллы. И есть желание перейти к невизуальному языку. smile.gif
А вообще я бы выбрал современный язык, он проще и по возможностям выше. smile.gif
Pasha
Для: Gamlet
VB (VB.NET) - вполне современный язык. По содержанию современности примерно на уровне Java smile.gif
sax_ol
по теме статейка
]]>http://stfw.ru/page.php?id=5112]]>
Kmet
Цитата
По содержанию современности примерно на уровне Java

сказанул...
Pasha
Для: Kmet
А как еще можно разделить языки на современные и несовременные? Только по содержанию современности smile.gif Что такое есть в Java, чего нет в VB.NET?
LuMee
Цитата(Pasha @ 23:08:2007, 14:49 ) *
Для: Gamlet
VB (VB.NET) - вполне современный язык. По содержанию современности примерно на уровне Java smile.gif

VB.NET - этот да, вполне современен и ООПен smile.gif Хотя я лично для .NET предпочитаю C# - он мне кажется каким-то более лаконичным и наглядным, что ли.
Что касается VB - в качестве самостоятельного иснтрумента разработки (т.е. не в качестве встроенного ЯП вроде VBA) он, ИМХО, анахронизм.
Kmet
Для: Pasha
содержание современности это что? и каким образом по нему можно сранивать? и как выглядит топ 5 по этому параметру? =)
Pasha
Цитата(Kmet @ 23:08:2007, 15:21 )
содержание современности это что? и каким образом по нему можно сранивать? и как выглядит топ 5 по этому параметру? =)
*
Что приводит нас к вопросу: что же такое современный ЯП, если VB - не современный.
Gamlet
Ребят, вы меня не поняли. Под современным языком я мею в виду язык 2 летней давности, но не 10 летней. Есть новые языки. У них легче синтаксис, и порой выше возможности. (Например DB в создании игр (знаю, что ДБ это редактор, а не язык)) Но их качество под вопросом. smile.gif
Кстати, что такое С#?
А статья совсем не верна. С разрабатывался как мультиплатформенный язык, компанией людей с разным платформами и желанием писать проги. Java произошел не от С++!(он был основан на perl или что то вроде того) И очень важно заметить то, что Java особенно кросплатформен ибо его интерпритатор встроен в процессоры.
zubr
Цитата
Java особенно кросплатформен ибо его интерпритатор встроен в процессоры.

Это для меня откровение smile.gif
Gamlet, может слышал про виртуальную машину Java?
Gamlet
Слышал. Но я исхожу не из домыслов а из исторических фактов. Интерпритатор в них встраивается начиная с 1 пента.
И вот вопрос что выбрать:
с++
Java
VC++.net
(Вообще, чем нетовские языки отличаются от просто визуальных)
Pasha
Цитата(Gamlet @ 24:08:2007, 09:54 )
Слышал. Но я исхожу не из домыслов а из исторических фактов. Интерпритатор в них встраивается начиная с 1 пента.
*
Жжошь в каждом слове. Ты хоть примерно представляешь как работает Java и что такое JVM? Или как работает .net и что такое CLR? И вообще, чем интерпретация отличатеся от компиляции? Вот когда будешь представлять, сразу поймешь чем нетовские языки отличаются от остальных.
sax_ol
Цитата(Gamlet @ 23:08:2007, 21:19 )
Java особенно кросплатформен ибо его интерпритатор встроен в процессоры.

и ктож его туда?
Цитата(Gamlet @ 24:08:2007, 09:54 )
И вот вопрос что выбрать

vba
Цитата(Pasha @ 24:08:2007, 10:35 )
Ты хоть примерно представляешь

откуда, если даже статья - неправильная smile.gif
Azrael
Цитата(Gamlet @ 24:08:2007, 10:54 )
Интерпритатор в них встраивается начиная с 1 пента
*

Попутал немного. В пенты никто яву не встраивал.
Вот информация ~2003 года (самоучитель с диска JBuilder):
Цитата
Фирма SUN Microsystems выпустила микропроцессоры PicoJava, работающие на системе команд JVM, и собирается выпускать целую линейку все более мощных Java-процессоров. Есть уже и Java-процессоры других фирм. Эти процессоры непосредственно выполняют байт-коды. Но при выполнении программ Java на других процессорах требуется еще интерпретация команд JVM в команды конкретного процессора, а значит, нужна программа-интерпретатор, причем для каждого типа процессоров, и для каждой архитектуры компьютера следует написать свой интерпретатор.


С тех пор особо о распространении процессоров с "зашитой явой" особо не слышал
Pasha
Для: Azrael
Автор самоучителя тоже жжот. Байт-код Java, как и байт-код .NET не интерпретируется. Он компилируется код для конкретного процессора перед выполнением. Собственно, из-за этого извращения типа PicoJava оказались никому не нужны.
Для: sax_ol
почему vba?
sax_ol
Для: Pasha
а чем он плох, для начала самое то - пишеш и тутже видишь smile.gif (если серьезно то вба переоценить довольно трудно)
но доля иронии в моем посте конечно есть, потому как выбор был достаточно скуден smile.gif
North
Цитата
Для: Normann
VB, C++, ASM. Ты уже на 3-м уровне сумрака.


А если начнешь вкуривать еще и Haskell, то попадешь сразу на четвертый

По существу топового вопроса:
Если с программированием особо не знаком то лучше начать с игрушечных языков: Basic, Action Script, Pascal. Если вопрос стоит о простоте изучения и зарабатывании денег, то смотри в сторону Java или .NET( С# в частности )
Normann
А мне кажется если не боишься потерять желание программировать то самое лучшее начинать с Ассемблера. Потом C++, когда освоишься в С++ тогда можно и выбирать пойдешь ли дальше на С или какой другой по выше.
Gamlet
Ребят, ВБА язык уродский! Его лучше не учить. Будушего в програминге нету! Это только для себя макросы в эксели писать. Лучше начните с ВБ(Удобный и простой) или С++(основной). Ассемблер сложный-на нем можно операционки и драйвера писать, для другого много марроки.Другие незнаю.

Ощибся по повуду Java потому, что ночинал учить и попался дуратский учебник. smile.gif
progstone
глупый вопрос имеет смысл изучать технологии а не язык.Новые Языки нужно изучать когда не хватает возможности реализации или качества реализации требуемых технологий.Лучше спроси какой язык легче освоить новичку.
Gl00mY
Прошу сильно меня не пинать.....
Суть в том, что я как и многие хочу научится какому-нибудь языку программирования.
Сейчас я неплохо разбираюсь в PHP4\5(и его модулях), в MySQL (c любым доступом втч из КС), в апаче и всех его конфиг-тюнинг примудростях. Немного знаю IIS (апача форевер) и JS, вобщем чистое WEB.

Соответственно, ищу какой-нибудь язык близкий по синтаксису к PHP.
Низкоуровневые языки пока учить не хочится, а хочется создавать проги под Вынь32 (64),
С возможностью работы по сети на уровне КСК, с БД и с различным ПО (желательно не только от MS)

А то вот то, что я сейчас творю с PHP это уже извращение....
И вот ещё хотелось, чтоб были уже хорошие доступные библиотеки для упрощения программирования
(как классы в PHP), там всякие конверторы, шаблонизаторы и всякое такое.
Спасибо!
Pasha
Для: Gl00mY
Близкий по синтаксису к php - это любой C-подобный язык. Я бы посоветовал посмотреть в сторону C# и вообще .net. Он полностью подходит под твое описание.
progstone
.net недоконца подходит под описание,но кроме него разве что qt(генерит и под линух и под вынь32/64).
Начсет бд ADO или ADO.NET используя любой язык .NET или Visual C(типа низкоуровневое).Хотя многие неплохие програмеры исп php и mysql,понятие не имеют об источниках данных и строках подключения.
Ну Gl00mY скорее всего имел ввиду похожий не по синтаксису а по принципу,здесь qt чуток ближе.
Вообшем изучай .net принципы там малость другие,да и сервак IIS(если под веб исп asp+ms sql server),но освоить думаю не намного сложнее чем пхп.
Pasha
Для: progstone
Чем именно .net не подходит? :-/ Стандартная библиотека умеет все перечисленное.
А qt - просто библиотека для C++, и на под вин на ней получаются довольно кривые приложения. Так что смысл ее использовать есть только для переноса гуи из линукса. Если иска
Вообще, судя по контексту, автору надоело веб-програмирование, и он хочет найти что-то вроде .net windows forms, причем такое, чтобы синтаксис был знакомый. Поэтому под описание подходит C++/Java/C#, дальше дело вкуса.
Gl00mY
Для: Pasha
***Вообще, судя по контексту, автору надоело веб-програмирование***
Так точно )))
Просто живу я далеко и интернет слишком дорогой, чтоб эксперементировать с веб, а на локалхосте все не проэксперементируешь.... вобщем хочицца учится чему-нибудь, где интернет не так важен.
А писать проги на ПХП через веб-интерфейс blink.gif ........
Это извращение, хотя я этим занимался biggrin.gif

Для: Pasha
*** Близкий по синтаксису к php - это любой C-подобный язык. Я бы посоветовал посмотреть в сторону C# и вообще .net. Он полностью подходит под твое описание.***
По описанию очень понравилась Visual Studio Team System Developer Center (Visual C#)
Кто что скажет? Друг уже качает его с вареза для меня smile.gif
Про .нет ничего не понял.... ((((

Для: progstone
***Вообшем изучай .net принципы там малость другие,да и сервак IIS(если под веб исп asp+ms sql server),но освоить думаю не намного сложнее чем пхп.***
Увольте меня что либо делать на асп и тем более иис, да и веб для меня не очень актуален уже! ohmy.gif Увы!
Pasha
Для: Gl00mY
Про .net поймешь как только напишешь на C# хоть что-то сложнее Hello World.

Кстати, обычный ASP умер несколько лет назад, теперь под ASP обычно подразумевают ASP.NET. Поэтому связка ASP.NET+IIS актуальна как никогда smile.gif
yashchar
Я начинал с PASCAL. Прекрасный язык для начала (ИМХО). Понятный и доступный начинающему синтаксис, поддержка основных направлений в программировании, да и Borland постарался на славу. Далее - как уже говорили многие в этой теме - куда лежит душа. Ассемблер можно изучить для понимания основ взаимодействия ПО и железа.

Кстати, может это только меня окружает, но почему все так вцепились в Java?
Azrael
Для: yashchar
Цитата(yashchar @ 15:11:2007, 13:17 )
Кстати, может это только меня окружает, но почему все так вцепились в Java?
*

а) кроссплатформенный
б) мидлеты
в) простой
г) объекты рулят
sax_ol
Для: Azrael
а) не без приколов
б) а что это?
в) это индивидуально, для когото и пролог неподнимаем, а для кого и лисп конфетка
г) а где они не рулят? cool.gif
Azrael
Для: sax_ol
а) согласен, но тем не менее
б) мобильные платформы
в) снова согласен, но, тем не менее, синтаксис, имхо, прост
г) в Java с ними чуть-чуть проще работать, и, если не предполагается писать на низком уровне, то Java выигрывает у С/С++ в том, что будет меньше ошибок и проблем, типа утечки памяти, соответственно, время разработки будет меньше, глюков - опять же меньше

О минусах Java могу сказать только, что неудобно интерфейсы ваять.
Pasha
Для: yashchar
Pascal прост для изучения потому, что его синтаксис позволяет точно определить место синтаксической ошибки. И еще потому, что на нем можно писать не имея представления об указателях smile.gif
Для: sax_ol
A MIDlet is a Java program for embedded devices.
Kmet
по кросплатформенности, среди промышленных языков, лучшая.
богатый инструментарий для создания маштобируемых решений.
сильное опенсорс сообщество. на каждый чих качественная опенсор либа или фреймворк(Hibetnate, Spring, Struts, GWT, DWT, apache.*, ...)

Цитата(Azrael @ 15:11:2007, 12:07 )
О минусах Java могу сказать только, что неудобно интерфейсы ваять.
*


не зачечал, ну разве что AWT кривоват, но для своего времени он был, имхо, самым удобным.
а так Swing или SWT очень даже ничего.
Pasha
Цитата(Kmet @ 15:11:2007, 12:33 )
сильное опенсорс сообщество. на каждый чих качественная опенсор либа или фреймворк(Hibetnate, Spring, Struts, GWT, DWT, apache.*, ...)
*
Привязывать крупный проект к н-ти сторонним библиотекам нехорошо. Для .net все это или уже в стандартной библиотеке, или будет там в феврале smile.gif
Цитата(Kmet @ 15:11:2007, 12:33 )
не зачечал, ну разве что AWT кривоват, но для своего времени он был, имхо, самым удобным.
а так Swing или SWT очень даже ничего.
*
Извини, но то убожество, которое получается при ваянии интерфейса на Swing нельзя оправдать даже кросплатформенностью. SWT еще более-менее.
Java хорош как промышленный язык.
...
А еще в java нет value types.
...и дальше куча аргументов из серии holy wars.
sax_ol
Цитата(Azrael @ 15:11:2007, 12:07 )
О минусах Java могу сказать только, что неудобно интерфейсы ваять.

А Finalize?, часто слышу упреки в это сторону ...

Для: Pasha
мне уже в #41 пояснили, но всеравно спс!
Kmet
Цитата(Pasha @ 15:11:2007, 12:49 )
Привязывать крупный проект к н-ти сторонним библиотекам нехорошо
*

Не в случае с явой.

Цитата(Pasha @ 15:11:2007, 12:49 )
Для .net все это или уже в стандартной библиотеке, или будет там в феврале
*

в новой яве тоже обещают многое включить в SDK, но в любом случае это палка о двух концах.
Оба подхода(набор альтернативных библиотек или всеобъемлющий SDK) имеют как плюсы так и минусы.

Цитата(Pasha @ 15:11:2007, 12:49 )
Извини, но то убожество, которое получается при ваянии интерфейса на Swing нельзя оправдать даже кросплатформенностью
*

Тебе попадались неудачные примеры использования Swing.
IntelliJ IDEA убожество?!

Цитата(Pasha @ 15:11:2007, 12:49 )
А еще в java нет value types.
...и дальше куча аргументов из серии holy wars.
*

Я вообще не понял, к чему тут дотнет вспомнили.

Цитата(sax_ol @ 15:11:2007, 13:10 )
А Finalize?, часто слышу упреки в это сторону ...
*

В смысле?
Pasha
Цитата(Kmet @ 15:11:2007, 14:38 )
Не в случае с явой.
*
В случае с любым продуктом. Невозможно хорошо разобратся во всех фреймворках, приходится специализироваться. В результате человек вроде как яву знает, но для того, чтобы начать работать над проектом, ему придется сначала понять все сторонние библиотеки, которые используются.
А какие минусы у большого, всеобъемлющего SDK?
Цитата(Kmet @ 15:11:2007, 14:38 )
Тебе попадались неудачные примеры использования Swing.
IntelliJ IDEA убожество?!
*
Не у всех есть время на вылизывание интерфейса как у IDEA. Swing подразумевает собственную отрисовку, что не есть хорошо под той же вистой. Все вокруг красивое, полупрозрачное, антиалиазинг, 3D, а посреди экрана окно с квадратными кнопками.
Kmet
Цитата(Pasha @ 15:11:2007, 15:54 )
Невозможно хорошо разобратся во всех фреймворках, приходится специализироваться. В результате человек вроде как яву знает, но для того, чтобы начать работать над проектом, ему придется сначала понять все сторонние библиотеки, которые используются.
*

Ты хочешь сказать, от того, что все технологии реализуемые стороними библиотеками переметить в SDK, их (технологии) все сразу станут знать? Да, это, конечно, избавит от необходимости знать кучу реализаций одной технологии. Но для ява программиста такая проблема в общем-то и не стоит, она решилась эволюционным путем.

Цитата(Pasha @ 15:11:2007, 15:54 )
А какие минусы у большого, всеобъемлющего SDK?
*

отсутсвтие альтернативных реализаций. написать общее решение, которе подходило для всех всех случаев нельзя. но конечно хотелось бы =)

Цитата(Pasha @ 15:11:2007, 15:54 )
Не у всех есть время на вылизывание интерфейса как у IDEA
*

встречали и другие свинг пиложния с интерфейсом уровня IDEA, идея просто первой вспомнилась.

Цитата(Pasha @ 15:11:2007, 15:54 )
Swing подразумевает собственную отрисовку, что не есть хорошо под той же вистой. Все вокруг красивое, полупрозрачное, антиалиазинг, 3D, а посреди экрана окно с квадратными кнопками.
*

Ну это КУ. Цена мультиплатформенности. Хотя не все так плохо, натив Look&Feel под ХР смотрится вполне натив=). как обстоят дела на висте не знаю. С другой стороны не так много библиотек которые позволяют строить гуи, который одинаково смотрится на разных платформах, что для корпоратиных клиентов порой важно.
sax_ol
Цитата(Kmet @ 15:11:2007, 14:38 )
В смысле?

Ну вообщето я не знаю яву, и поэтому спрашивал ...

уточню
из ]]>http://java.sun.com/j2se/1.4.2/docs/api/ja...t.html#finalize]]>

Цитата
"The finalize method may take any action, including making this object available again to other threads; the usual purpose of finalize, however, is to perform cleanup actions before the object is irrevocably discarded. For example, the finalize method for an object that represents an input/output connection might perform explicit I/O transactions to break the connection before the object is permanently discarded".


однако есть и такое
]]>http://blogs.sun.com/vmrobot/entry/%D1%81%...%86%D0%B8%D0%B8]]>

вот и хотелось бы что-бы знающие люди пояснили - это гуд или не гуд smile.gif
Pasha
Цитата(Kmet @ 15:11:2007, 19:12 )
Ты хочешь сказать, от того, что все технологии реализуемые стороними библиотеками переметить в SDK, их (технологии) все сразу станут знать? Да, это, конечно, избавит от необходимости знать кучу реализаций одной технологии. Но для ява программиста такая проблема в общем-то и не стоит, она решилась эволюционным путем.
*

Эволющионный путь - это отмирание худших реализаций, выживание лучших? Но ведь кто-то завязал свои проекты на умершие/худшие реализации, и теперь вынужден их поддерживать или переписывать.
Хотя, огромный framework тоже не решает проблему полностью, только смягчает последствия. Сам наблюдал как у .net-чиков на собеседовании спрашивали "а вы работали с xxx" буквально по списку нэймспейсов.
Цитата(Kmet @ 15:11:2007, 19:12 )
отсутсвтие альтернативных реализаций. написать общее решение, которе подходило для всех всех случаев нельзя. но конечно хотелось бы =)
*
Для многих вещей, разбросанных по сторонним библиотекам можно выбрать если не лучшую, то по крайней мере наиболее удобную и расширяемую на данный момент реализацию. Если не нравится стандартная реализация, всегда можно выбрать стороннюю. Да и альтернативы внутри общего фрэймворка скорее всего будут.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2009 IPS, Inc.