Russian Qt Forum

Программирование => Общий => Тема начата: Lagovas от Август 07, 2011, 03:41



Название: C++ || C# || Python
Отправлено: Lagovas от Август 07, 2011, 03:41
Сразу оговорюсь, тема не для холиваров.
В общем я сейчас учусь в техническом университете, хочу стать в будущем программистом. Понравилось еще в школе, когда учили паскаль, т.е. стать им решил серьезно. В универе познакомился с прологом, с++, с# и питоном, и все это за один год. Каждый язык чем то интересен, но все же хочется как можно быстрее определится, с которым связаться серьезнее. Очень хочется решить для себя в каком направлении лучше плыть, что бы не прогадать, ну и конечно же составить собственное мнение. Конечная цель, это нормально зарабатывать программированием.
Так вот, хочу помочь в выборе. Тема не для холиваров. Прошу лишь высказать каждого свое мнение, лучше основанного на фактах, личных историях и тому подобного, по поводу данных языков. Интересно узнать какой для чего сейчас используется, приблизительное мнение о его будущем, применимости и развитии.
Сам лично пробовал их немного, пол года где то. Учили мы Visual C++ и C#, сам начал пробовать чистый С++ как месяц. Питон тоже пол года.

Теперь расскажу что я о них думаю. С++, только что читал по поводу переизбыточности этого языка, и частично согласен. Все же что бы на нем нормально программировать, нужно очень и очень много знать о языке, и не только. Сам язык настолько обширен, что его сложно изучать, слишком много нюансов. Так же, выучить язык недостаточно для написания программ. Желательно еще ознакомится с наиболее часто используемыми библиотеками. Честно говоря пробовал почитать исходники буста, я понял что это мраки, и что бы там чет понять, нужно пол года заниматься одними плюсами. В то же время поюзав Кьюте, стало легче на душе, не все так страшно, как казалось. Легко, и непринужденно.
В общем мое мнение о плюсах:
+Они производительны
+Позволяют многое контролировать
+Имеют набор интересных библиотек

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

Теперь о шарпе. По началу, когда начинали на нем писать, проскакивала мысль, что нельзя явно освободить ресурс. Да, есть там delete, но когда его юзаешь и пробуешь получить значение переменной, оно его тебе нормально дает. Да, есть GC->Collect(), но блин, если каждый раз его писать на каждом освобождении, не будет ли это сильно тормозить систему, какой бы не была крутой эта GC.
Хотя пишется на шарпе проще. Для меня это "проще" было тем, что тут для меня не было такой разности между указателем, ссылкой и обычной переменной. Тут практически все ссылка, и передается все по ней (кроме value типов). Т.е. не нужно парить себе мозг вариантами как передать переменную, юзать умный указатель и т.п. Еще Шарп нравился своей .Net библиотекой, которая более менее хорошо документирована, много что есть из коробки, так сказать. Хотя большое влияние сделала Студия с Visual Assist, они еще ускоряли работу. В С++ не чувствовалась та простота использования стандартной библиотеки в повседневности, чем в шарпе. Конечно есть буст и куте. Буст для меня это нечто страшноватое кажется, на первый взгляд, а кьюте конечно же наоборот.
Так как шарп создавался Микрософтом, то конечно же заточено много под него изначально. А это значит что из коробки есть возможность писать сайты (для серваков IIS, хотя вроде можно и не только для них), работа с базами данных (MSSQL). Это две самые заметные возможности шарпа из коробки для меня. С базами есть удобнейшая LINQ, та и не только с базами. Очень легко начать работать с массивами данных начинающему программеру, не нужно искать левые библиотеки, вникать как работают, пробовать. Здесь ознакомился с синтаксисом и поехал. Да, это может и не наиболее оптимальный код будет, но это вначале. Сначала попробовал, а дальше уже когда освоил первую ступень, учишься оптимизировать, улучшать и т.п.
В общем мое краткое мнение о нем:
+Быстрая обучаемость
+Обширная библиотека из коробки
+Изначальная возможность писать под веб и работа с БД
+Меньше нужно колупатить книг и вникать в нюансы на стадии обучения (да, я слегка ленив)
+ ASP.Net для веба

-Меньшая производительность
-Меньший контроль над памятью

Теперь о питоне. Когда я с ним начал знакомится, у меня первое мнение было - как он мне раньше не попадался? Нахрена разные там С# и плюсы, когда есть питон. Да, где нужна скорость пишите на своих плюсах, остальное на питоне. Ведь это так легко, легко читаемо и так далее. Мы когда писали лабы на нем, у нас было по 40-60 заданий, т.к. на нем все легко делается. Программы редко были больше 10 строчек из-за обширной библиотеки и нестрогой типизированности. В одной строке с обьектом можно поработать как со строкой, потом как с числом и в конечном итоге вернуть как строку, ведь все преобразования можно влепить в одну строчку и все будет вполне читаемо. Та и вроде все можно делать на питоне. Это не какой то узкоспециализированный язык типа пролога, а на нем можно и гуи, и веб, и настольные приложения. И кроссплатформенно изначально. Мы когда лабы писали, соревновались у кого код короче был, но и что бы по скорости не уступал. Так же нравится питон своей документацией. Ее легко читать, понимать и сразу пробовать. Я когда пишу программу и требуется неизвестная библиотека, я открываю интерпретатор, смотрю документацию по нужному методу или классу, и тут же его тестирую, пробую, пока не разберусь. Все что для этого надо, это импортировать модуль и пробуй на здоровье. Не надо создавать проект(шарп)\текстовый файл(плюсы), писать разные int main, подключать длл, прописывать хедеры и т.п., только что бы опробовать один метод. Да, конечно, всегда существует созданный файл\проект для тестирования. Но хедеры и длл никто не отменял. Это не трудно, но все же менее привлекательно.
Мое мнение о питоне:
+Отличнейшая библиотека с коробки на все случаи жизни
+Читаемость кода
+Простота написания
+Легче начать писать на языке новичку
+Хороший фреймворк для веба
+Изначальная кроссплатформенность

-Медлительный

По поводу других языков. Java не предлагать, ибо считаю что он не лучше с++ в производительности, практически на ровне с#, и уж точне не лучше в плане легкости написания Питона. Точно так же не предлагать руби и перл. Питон с ним имхо на ровне. Кто то лучше, кто то хуже в чем то, но имхо разница незначительная.

В общем к чему все это. Просто слегка стремно потратить много времени на С++, и в конечном итоге никому не нужно будет, и мало где применятся будет. Все это из-за не знания как все происходит в реальных проектах, что нужно на самом деле в командах, что наиболее часто используется, где и как. В общем, прошу высказать мнение и помочь на стать на путь истинный.

П.С. Такой пост пойдет в Песочницу на хабру ради инвайта?)


Название: Re: C++ || C# || Python
Отправлено: asvil от Август 07, 2011, 09:52
Посмотрите, пожалуйста, на парадигмы программирования для начала: функциональную и императивную.
После посмотрите на три лагеря языков: чистофукциональные, императивные, мультипарадигменные.
Все императивщину вы уже познали судя по сообщению.
Тогда перейдите к функциональщине. Данная парадигма перспективна легким распараллеливанием и поддерживаемостью программ. И это еще не все плюсы.
Рекомендую начать с clojure и прочтении о функциональном программировании: Введение в функциональное программирование ML, sicp. Clojure - лисп работающий на jvm, имеющий: очень удобную интеграцию со java кодом, встроенные средства для конкурентности, макропрограммирование.
Продолжить на выбор: erlang, haskell.
Закончить common lisp-ом, языком на которым зародились многие рюшечки современных языков.

P.S. repl в пайтоне даже и не сравнится с emacs-slime-swank.


Название: Re: C++ || C# || Python
Отправлено: Lagovas от Август 07, 2011, 10:19
столько слов новых, конечно слышал про хаскель и ерланг... но все же ново. Я кстати упоминал, что язык должен позволять найти работы хорошую, что то я когда просматривал вакансии (живу в Киеве, Украина), чет такого вроде не видел. Разве в реальных приложениях часто используются хаскель, ерланг и тому подобное? Так ли оно востребовано и в каких сферах?


Название: Re: C++ || C# || Python
Отправлено: asvil от Август 07, 2011, 12:12
Если вы интересуетесь посмотрите пожалуйста в success stories любого из языков.
Функциональные языки слабо прижились в десктоп гуи, в вебе им проще.
В частности erlang очень и очень красивый язык для серверных приложений, чрезвычайнейшая параллелизация с межпроцессной коммуникацией.
Востребован любой язык, особенно тот в котором мало программистов.
Clojure можно применять везде где ява.

Что касается вакансий, то скорее всего в киеве вы найдете 1-10 erlang мест.


Название: Re: C++ || C# || Python
Отправлено: Lagovas от Август 07, 2011, 12:20
и все же хотелось бы услышать и по поводу языков названных мною, все же не хочется все время бросаться с одного языка на другой. Хочется сейчас выбрать более менее оптимальный, начать работать с ним, потом уже пробовать другие при потребности.


Название: Re: C++ || C# || Python
Отправлено: asvil от Август 07, 2011, 12:24
Из того что вы назвали без разницы что выбирать. Просто иногда вместо find надо будет писать search.


Название: Re: C++ || C# || Python
Отправлено: kambala от Август 07, 2011, 13:07
раз очень понравился питон, можно попробовать перл/руби


Название: Re: C++ || C# || Python
Отправлено: Lagovas от Август 07, 2011, 14:58
Дык вопрос то не в том, какой еще язык поучить, наоборот, хочется не языки учить, а выбрать какой то один и работать с ним. Смысл пробовать перл\руби, если пробовал питон? Большая разница в них? Не думаю, врядли чет полезное из этого будет. Я задал вопрос, т.к. не знаю во что углубляться, в С++, на которых пишут высокопроизводительные приложения, для которых нужно хорошо знать СТЛ, шаблоны, ооп, управление памятью и еще отдельные полезные либы, которые если не хорошо документированные, то пиши пропало, ибо исходники читать жесть.
Или выбрать шарп, который чаще в реальных приложениях выбирают, т.к. на нем быстрее и дешевле пишется ПО, на котором легко работать с БД и так далее, но все таки медленнее плюсов (хотя хз, часто ли тормознутость в реальности проявляется, то и хотелось бы узнать).
Либо питон, на котором уважающий себя программист пишет придерживаясь общепринятым правилам типа PEP 8, вследствие чего легко читать документацию, чужой код, писать свой и так далее. Но он еще тормознутей шарпа, и тут уже реально будет это проявляться даже в сравнении с шарпом, но важно ли это в большинстве случаях среднестатистической работе? Часто ли требуется программер пишущий высокопроизводительный код, или чаще всего пишут обычную гуишку, которая чет там делает с бд и так далее, но редко  требуется выборка из многомилионных записей, обработка и т.п.


Название: Re: C++ || C# || Python
Отправлено: alex312 от Август 07, 2011, 17:26

Мне кажется, что программирование больше делится не по языкам, а по задачам (прикладное, системное, веб, эмбед ...).
И изучать стоит не один язык, а сферу применения.
И английский язык.


Название: Re: C++ || C# || Python
Отправлено: Lagovas от Август 07, 2011, 17:34
Я это понимаю, потому и спрашивал, где используются эти языки и сфера их приминения. Я лишь начинающий программер, и хз как все в реале как таково. Потому попросил здесь помощь расчехлить плюсы-минусы и сферы приминение, ведь это самое важное. Из того что я могу предположить, с++ юзается в встроенных систем, вместе с С, но не знаю как он в системном программировании. Тут может уже и шарп или питон подходит для большинства задач и с++ здесь избыточен. В вебе более менее представляю шарп и питон. У первого асп.нет, у второго разные фреймворки. У обоих все удобно и успешно. Лишь не знаю их долю приминения, все же наверное на шарпе больше пишут, чем на питоне, но это может быть из-за относительно малого срока развития веб-дева на питоне, около 5 лет вроде развивается. Ведь интернет начинает расти большими темпами, а раньше такого не было, потому более менее все на ровне, кто первые запрыгнет, того и лошадь. Интересно узнать про прикладное и системное программирование. Что здесь используется, на что обращается внимание, что востребовано.


Название: Re: C++ || C# || Python
Отправлено: alex312 от Август 07, 2011, 17:59
Внимательно пересмотри фильм. (http://ru.wikipedia.org/wiki/%D0%91%D0%B5%D1%81%D1%81%D1%82%D1%80%D0%B0%D1%88%D0%BD%D1%8B%D0%B9_%28%D1%84%D0%B8%D0%BB%D1%8C%D0%BC,_2006%29)
И раз, ты уже здесь, то С++ (http://qt.nokia.com/), Python (http://www.pyside.org/), Haskell (http://qthaskell.berlios.de/index.html).


Название: Re: C++ || C# || Python
Отправлено: Lagovas от Август 07, 2011, 18:30
К чему он? Там кажись была тема, типа никогда не поздно учиться или что то в этом духе?
Посмотрел, ясно что на этих языках можно писать гуи с помощью кьюте, но к чему это? Это лишь гуи, а я в общем? Или на что это был намек?


Название: Re: C++ || C# || Python
Отправлено: twp от Август 08, 2011, 21:08
Конечно нужно ориентироваться на рынок труда, а то можно изучить какой-нибудь экзотический язык, а потом долго искать работу  :) Вот когда-то на моей прошлой работе пришел один парень, который показал свою программу с 3D-сценой и она была написана на ассемблере!!! :o И в итоге его не взяли просто потому что его знания не были нужны. И не известно, как долго он потом искал работу и нашел ли. В нашем городе вообще сложно найти работу  программистом, а с ассемблером и подавно. И вот у него спрашивали,  зачем ты изучал ассемблер? Ну он и ответил, что где-то прочитал, что ассемблер это очень круто! Да, ассемблер знать очень полезно, но на нем одном далеко не уедешь, тем более в наши дни. Так что желательно изначально правильно выбрать язык (точнее языки). Я бы советовал изучить один компилируемый язык (С++, Java или C#) и  по крайней мере один интерпретируемый, тот же питон, руби или JavaScript. Дальше можно еще что-либо освоить.  Как по мне, то лучше в начале изучить С++. Какая от этого выгода? Во-первых - можно писать также приложения на С. В низкоуровневом системном программировании С наиболее часто используемый язык. Во-вторых - если будет такая необходимость, можно запросто перелезть на ту же Java или C# - они синтаксисом похожи на С++ и проще. Ну и в третьих - можно программировать на Qt! ;D Кстати на счет того что Qt это только GUI - откуда такая инфа? Может стоит глянуть сюда (http://doc.qt.nokia.com/latest/modules.html)?


Название: Re: C++ || C# || Python
Отправлено: iroln от Август 08, 2011, 23:01
Я с удовольствием уже 2 года пишу на Python. Специфика моей работы такова, что мне приходится писать не очень большие программы для научных и инженерных нужд, а там чаще нужно больше думать над математикой, алгоритмами и иметь возможность быстрой интерактивной проверки, визуализации и отладки. Динамические языки в этом плане подходят идеально. Не надо ждать, пока приложение скомпилируется, есть интерактивная консоль и т.д. В общем, одни удобства. Для Python есть библиотеки на все случаи жизни, это язык общего назначения, у него приятный синтаксис, не смотря на отступы. :) Есть, конечно, и косяки, но они везде есть.

В общем, хочу сказать, что выбор языка, если не всецело, то во многом зависит от специфики работы и решаемых задач.

А тем временем я всё мечтаю освоить Lisp или Haskell, хочу убедиться, правду ли говорят об непревзойдённой чудодейственности "функциональщины", или брешут. :)


Название: Re: C++ || C# || Python
Отправлено: Lagovas от Август 12, 2011, 00:41
2iroln, вопрос к тебе. Друг скидывал ссылку, где результаты сравнения языков. Там выбираешь два языка, и показывается их соотношение на нескольких бенчмарках. Так питон почти у всех проигрывал. Правда ли он в деле такой медленный или нет? Используют ли его в научных целях, где нужно считать, или там все же юзают C++?


Название: Re: C++ || C# || Python
Отправлено: alex312 от Август 12, 2011, 06:55
Хоть вопрос и не ко мне, но отвечу.

Есть несколько реализаций Python - это стандартная(на С), IronPython (.Net), Jython (JVM), PyPy (Python).
Говорю за стандартный.
Он, конечно, медленнее чем компилируемые языки, но он легко расширяется библиотеками на С. И эти библиотеки есть.

Например SciPy (http://www.scipy.org/).
Mathplotlib (http://matplotlib.sourceforge.net/)

И еще скажу, что и стандартного питона хватает на многое.


Название: Re: C++ || C# || Python
Отправлено: iroln от Август 12, 2011, 07:29
2iroln, вопрос к тебе. Друг скидывал ссылку, где результаты сравнения языков. Там выбираешь два языка, и показывается их соотношение на нескольких бенчмарках. Так питон почти у всех проигрывал. Правда ли он в деле такой медленный или нет? Используют ли его в научных целях, где нужно считать, или там все же юзают C++?
Стандартная реализация Python довольно медленная, но как писал alex312, есть возможность использовать библиотеки для Python, которые написаны на Си, ну и соответственно достаточно производительны, тот же Numpy, например. В самом языке можно использовать различные конструкции, которые более производительны, те же генераторы списков могут быть быстрее чем циклы и т.п. Вообще, если знать Python на хорошем уровне, можно написать быструю программу и на чистом Python. :)

В научной среде для написания "числодробилок" (задач для суперкомпьютеров :), Python естественно не используется, это делается чаще на Си, и/или специализированными средствами, где вовсю используется распараллеливание, работа в кластере и т.д. Pyhton используется для реализации алгоритмов, мат. моделей, каких-либо исследований и экспериментов. Ну в общем то там, где применение скриптовых динамических языков удобно и оправдано.


Название: Re: C++ || C# || Python
Отправлено: Lagovas от Август 12, 2011, 07:39
Ну с питоном разобрались, лично для себя решил его изучить и использовать в будующем. Хотя и сейчас его юзаю для своих нужд.
Главный вопрос который меня беспокоит, стоит ли игра свеч, в изучении С++, или достаточно обойтись шарпом. Просто чтобы хорошо программировать на С++, реально надо неймоверное количество литературы прочесть и разбираться в некоторых либах, типа буста. Кьюте спасает, но не всегда. Та и не всегда нужны гуи. А что бы знать либы типа буста, нужно отлично разбираться в шаблонах, прочесть книги посвященные им и так далее. Плюс то же управление памятью.
На шарпе многое покрывается библиотекой .Нет. Я на нем немного программировал, но еще не было потребности в сторонней либе. Я писал прогу которая и в несколько потоков работала, и работа с инетом, и проблем не было. Достаточно прилинковать нужную длл и прописать namespace. Плюс дока всегда есть. Все таки документация почти на ровне с кьюте по своей обширности и тоже идет с Иде изначально.
В общем стоит ли овчинка выделки.


Название: Re: C++ || C# || Python
Отправлено: asvil от Август 12, 2011, 09:42
Не стоит. Обратите внимание на vala как альтернативу qt-c++.
http://ru.wikipedia.org/wiki/Vala (http://ru.wikipedia.org/wiki/Vala)


Название: Re: C++ || C# || Python
Отправлено: Lagovas от Август 12, 2011, 10:07
интересный язык, взял в себя и плюсы и шарп. Но ведь он узкоспециализированный, так сказать. Для написания под гном. Но увы, у нас в Киеве он не востребован. Нет ни одной вакансии, та и востребован ли он вообще? Используют ли его в реальных приложениях, в реальных проектах? Раз он вобрал в себя столько хорошего, почему еще не стал популярным? Это не упреки. Реально интересно.


Название: Re: C++ || C# || Python
Отправлено: asvil от Август 12, 2011, 10:19
ему 5 лет только. работает под glib, а glib кроссплатформенна.


Название: Re: C++ || C# || Python
Отправлено: Lagovas от Август 12, 2011, 10:31
Насколько я знаю, под винду смотрится очень плохо, из-за того, что не сливается с родным дизайном. Плюс не всегда ведь нужна кроссплатформенность. Этот язык позиционируется как ЯП для системных и прикладных задач. Разве в них производительность не должна быть на высоте? Если да, то должна поддерживать и АПИ ОС для создания ГУИ, для большей производительности.
Без тестов врядли что здесь скажешь. Насколько разнится от С++, насколько лучше шарпа за счет избавления виртуальной машины, стоит ли овчинка выделки опять же. Врядли сейчас все ломанутся менять свои приложения на этот ЯП, или переучиваться. Та и востребован ли он? Много ли программ пишут под линукс с гуи? ИМХО велосипед, ибо плюсы с тем же кьюте или gtk+ хорошо справятся.
П.С. а вопрос то не в этом был, а в том, что стоят ли плюсы в наше время потраченного время на них? И часто ли они востребованы?


Название: Re: C++ || C# || Python
Отправлено: Странник от Август 12, 2011, 10:37
в подобных темах обычно привожу ссылку на ежемесячный рейтинг от TIOBE (http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html), представляющий относительные показатели востребованности различных языков программирования. цифры, возможно, спорны, но тем не менее.


Название: Re: C++ || C# || Python
Отправлено: asvil от Август 12, 2011, 10:43
Да сам офис 2010 не сливается с дизайном, вот как терь быть? Уже давно пора выкинуть мысли про то, что там с кем сливается. Пользователь за 5 секунд найдет кнопку и поле ввода? Тогда ui ништяк.
C++, Java, Objective-C, C# окупиться по деньгам. Что тут думать то?


Название: Re: C++ || C# || Python
Отправлено: Lagovas от Август 12, 2011, 10:56
Я думаю между плюсами или шарпом. Говорю же, я как начинающий, хз как все это используется и востребуется в реальности. Если плюсы востребованы в системах реального времени, то это не по мне. Если они по сфере деятельности равны с шарпом, то тут уже выбор от характера. Меньше усилий и писать на шарпе, или больше учебы, чтения, и писать на плюсах...
По поводу ui, дык вопрос про платформозависимое ui не решен. Ведь иногда требуется производительность.
2Странник, спс, полезная ссылка


Название: Re: C++ || C# || Python
Отправлено: iroln от Август 12, 2011, 10:59
Lagovas, а Вы что писать то хотите? Над какими задачами в какой области работать? :)

Что мешает ковырять потихоньку и C# и С++, а там дальше видно будет. Язык лучше всего изучается, когда встаёт реальная задача написать на нём что-либо.


Название: Re: C++ || C# || Python
Отправлено: Lagovas от Август 12, 2011, 11:15
пока учусь, работы пока не было. Из того что сам пробовал... Курсовая была - написать модель проги для управления гидропонной теплицей. Что бы само температуру меняло и т.п., плюс СУ для посудомойки писал, тоже модель как бы. Вроде более менее интересно, сайт пробовал делать. Тоже интересно серверную часть делать. Клиентскую не пробовал и вроде не очень вдохновляет. Ну и себе по мелочи делал, скопировать, переименовать. Пока сам решаю куда интереснее. Но точно не в системах реального времени) Под телефоны не знаю, вроде не особо вдохновляет, но и не пробовал, может когда попробую, понравится. Сначала с инструментом (ЯП) хочу определится, ведь он тоже может внести лепту. Если шарп, высокопроизводительные не проканают, если питон, то тоже. Но если с++, тогда читать, читать, читать. В общем ясно, дальше сам решу.
Но реальные истории по приминению и т.п. с удовольствием послушаю, ну и советы если есть какие, как вы выбирали свой используемый ЯП, сферу программирования и т.п.


Название: Re: C++ || C# || Python
Отправлено: alex312 от Август 12, 2011, 11:26
Я думаю между плюсами или шарпом. Говорю же, я как начинающий, хз как все это используется и востребуется в реальности. Если плюсы востребованы в системах реального времени, то это не по мне. Если они по сфере деятельности равны с шарпом, то тут уже выбор от характера. Меньше усилий и писать на шарпе, или больше учебы, чтения, и писать на плюсах...
По поводу ui, дык вопрос про платформозависимое ui не решен. Ведь иногда требуется производительность.
2Странник, спс, полезная ссылка
Уважаемый Lagovas, я тебе советовал посмотреть один фильм, ты его наверно не смотрел(или смотрел и забыл).
Так вот, выскажу свое видение морали фильма относительно темы.
Нет лучшего и худшего языка, есть человек, который отлично знает свой инструмент и умело его применяет. В этом свете неважно что ты выбереш, а важно насколько правильно ты будешь применять инструментарий.
С++ не равен по сфере деятельности С#, но если ты думаешь, что на каком-то языке легче писать приложения, а на каком-то труднее, то это не так. легче может быть первые 1000 строк, а дальше начинаются трудности. Вот посмотри на Vala, в том плане, что люди написали себе новый язык программирования, фактически под проект!

Так что, что бы ты не выбрал, то разбираться придется все равно, не с одним, так с другим.

Немного оффтопа:
Цитировать
Когда я окончил школу,  я  считал  себя самым лучшим
программистом в мире. Я мог написать непобедимую программу игры
в крестики-нолики  в  трехмерном пространстве на пяти различных
языках программирования, а также написать программу,  состоящую
из 1000 строк,  которая бы работала.  Затем я попал в  реальный
мир.  Моей первой задачей было прочитать и понять фортрановскую
программу емкостью 200000 строк,  а затем увеличить скорость ее
работы в 2 раза.
отсюда (http://lib.kharkov.ua/ANEKDOTY/non_pas.txt)


Название: Re: C++ || C# || Python
Отправлено: Lagovas от Август 12, 2011, 11:38
Благодарю, ценное высказывание.


Название: Re: C++ || C# || Python
Отправлено: brankovic от Август 12, 2011, 13:25
А почему не рассматриваете java? По востребованности она одна из первых.

Про сложность C++ не стоит заморачиваться сильно. Например я, как и многие другие, изучал прямо в процессе работы (на уровне C знал с института). Примерно через год стал понимать о чём исходники буста, через 2 как написать такое самому. Всё это время таковое понимание для работы было не нужно, тут больше вопрос любознательности. Чем обкладываться книгами по C++, лучше читать книжки по архитектуре.

А питон пригодится всегда, знать его не повредит, а заглубляться заранее бессмысленно. Реальная задача будет другой всё равно.


Название: Re: C++ || C# || Python
Отправлено: Igors от Август 12, 2011, 13:35
...Но если с++, тогда читать, читать, читать.
...ну и советы если есть какие, как вы выбирали свой используемый ЯП, сферу программирования и т.п.
Ну вообще-то давать советы - много ума не надо, но попробую  :)

Расхожее мнение что, мол, С++ один из самых сложных языков на мой взгляд лишено оснований. Громадный  плюс С++ в том что есть выбор - можно изучать, но можно обойтись и довольно скромным багажом. "Секрет успеха С++ в его совместимости с С". Наблюдая молодых людей на этом форуме я часто замечал что они изучают все подряд :) Конечно, тяга к знаниям похвальна, но все хорошо в меру. Так легко превратиться в все(за)знайку который занят исключительно расширением своего круга знаний, а на задачу/работу ему наплевать. Иногда, на первых порах, ему удается обмануть заказчика, типа "ну этот так много знает, точно сделает" - но это быстро проходит, ведь результатов нет. Хелпо-знания всегда очень поверхностны.

Есть и другая крайность - вообще ничего не изучать, а "заниматься делом/задачей". Такие люди обычно весьма упорны и трудолюбивы, но недостаток техники/знаний ограничивает их возможности.

Поэтому мой банальный совет: постарайтесь найти "золотую середину"  :)



Название: Re: C++ || C# || Python
Отправлено: Lagovas от Август 12, 2011, 13:46
Про архитектуру, да, согласен.
По поводу джавы, вроде писал. Не считаю ее чем то отличающимся от шарпа. Она похожа на плюсы, только медленнее. В чем прикол? По сложности и возможностям наверное схожа с шарпом. Только шарп не так популярен в телефонах. Кстати, на яве легко пишется под линь? Т.е. нет там костылей типа моны?


Название: Re: C++ || C# || Python
Отправлено: iroln от Август 12, 2011, 14:10
Про архитектуру, да, согласен.
По поводу джавы, вроде писал. Не считаю ее чем то отличающимся от шарпа. Она похожа на плюсы, только медленнее. В чем прикол? По сложности и возможностям наверное схожа с шарпом. Только шарп не так популярен в телефонах. Кстати, на яве легко пишется под линь? Т.е. нет там костылей типа моны?
Java кроссплатформенна, работает везде где работает её виртуальная машина. Нет там никаких "костылей типа моны". :)

Вам надо устроиться на работу хотя бы стажёром или младшим программистом и поработать над реальной задачей, а то получается какое-то переливание из пустого в порожнее.

Помимо языка ещё нужно знать множество сторонних библиотек, или хотя бы для начала стандартную библиотеку языка. В C#, Java, Python это очень обширная библиотека. :) Теория - это хорошо, конечно, но накопленный опыт и практика - это очень важно.


Название: Re: C++ || C# || Python
Отправлено: Lagovas от Август 12, 2011, 14:13
Какие есть в плюсах часто используемые библиотеки. Знаю ток кьюте, стандартную, буст ну и curl.


Название: Re: C++ || C# || Python
Отправлено: alex312 от Август 12, 2011, 15:15
Из тех, что сразу приходят на ум.

OpenCV (http://opencv.willowgarage.com/wiki/)
Open Scene Graph (http://www.openscenegraph.org/projects/osg/wiki)
Poco (http://pocoproject.org/)


Название: Re: C++ || C# || Python
Отправлено: Igors от Август 12, 2011, 15:23
Вам надо устроиться на работу хотя бы стажёром или младшим программистом и поработать над реальной задачей, а то получается какое-то переливание из пустого в порожнее.
Именно, любые знания ничего не стоят без реальной практики/задачи


Название: Re: C++ || C# || Python
Отправлено: Lagovas от Август 12, 2011, 15:32
Реальную задачу норм для себя трудно найти, а без опыта работу тоже сложно найти. А с 1 курса далеко не пойдешь, пока что. Мало востребованы junior'ы, пока что.
П.С. вспомнил еще одну известную либу, SDL. Портов много у нее.


Название: Re: C++ || C# || Python
Отправлено: asvil от Август 12, 2011, 16:05
Приходите на фирму, вам дают тестовое задание, решаете, вас спрашивают о том, о сем, начинаете работать. где сложность?


Название: Re: C++ || C# || Python
Отправлено: Lagovas от Август 12, 2011, 16:09
Та скоро попробую пойти на фирму, просто пока нет практики с БД на плюсах. Пробовал на питоне sqlite, на пхп мускул, на плюсах еще нет. Пробовал на шарпе пойти в контору, из-за этого не прошел, сейчас буду пробовать работать с ними. Конечно же буду пробовать на фирму идти)


Название: Re: C++ || C# || Python
Отправлено: Igors от Август 12, 2011, 16:11
Мало востребованы junior'ы, пока что.
П.С. вспомнил еще одну известную либу, SDL. Портов много у нее.
А что такое senior/junior? Табель о рангах, ориентировка, визитная карточка, не более того. Провожают-то по уму, так что не надо ссылаться на "непреодолимые трудности". Никто не мешает зайти на фрилансерские сайты и попробовать взять (и выполнить) заказ - да, будете жестоко избиты и обмануты, и не раз. Но это все-таки лучше чем всасывать либы/хелп без всякого толку.

Ну а если мальчик просто так, "расширяет кругозор" -  то "нема квешнзов"  :)


Название: Re: C++ || C# || Python
Отправлено: ieroglif от Август 14, 2011, 09:48
с++/qt - пмшу уже 4ый год на этой связке, и абсолютно счастлив  ;D
з.ы. это я не для холиворсов, а для статистики  ;)


Название: Re: C++ || C# || Python
Отправлено: Lagovas от Август 15, 2011, 00:23
а конкретно какие приложения пишете. В общем какие. Типа формочка для работы с БД, или там чет еще. Можна без конкретики, просто интересно.


Название: Re: C++ || C# || Python
Отправлено: serg_hd от Август 16, 2011, 13:20
Logovas, вот вы там в первом посте сравниваете - что проще, а что легче. А не задумывались над ВОЗМОЖНОСТЯМИ языков? Вы напишете с++ на python'е или шарпе? Нет. А шарп и питон на С/С++ - да. И если язык "простой", то вас не смущает ли, мягко говоря, большое количество среднячков и конкурентов и вытекающие из этого в дальнейшем уровни зарплат. С++ на сегодня предоставляет достаточное количество библиотек для самых разных областей, коих вполне достаточно для самореализации как ни в каком другом языке. И никто вас не заставляет писать исключительно системный код.
И ещё. Точно не в курсе предназначения С#, но, судя по вики, он предназначен исключительно для виндовой платформы. Одно это - платформозависимость - должно было раз и навсегда поспособствовать нежеланию его использовать.
А питон - это интерпретатор и этим всё сказано. Да, для сайтов (хотя учитывая Wt это тоже спорный вопрос), сценариев всяких покатит, но, имхо, не для основного языка.
Вобщем, судя по вашему посту, я понял из контекста только одно - вас привлекает исключительно простота, хоть прямо и не говорите этого. В этом-то и проблема, потому что это типичный выбор новичка. Хотя, можно попробовать для начала один язык, когда станет скучно другой, более серьёзный. Если времени не жалко конечно. У меня вообще было 4 года php, 1 год java и вот два последних года C++. Только при плюсах стал понимать сколько времени было потеряно (не в плане программирования как такового, это, безусловно, ценно тоже; а в плане что мог раньше получать этот же опыт + опыт по С++).

По поводу других языков. Java не предлагать, ибо считаю что он не лучше с++ в производительности
улыбнуло, чесслово. JIT JIT'ом, но не настолько же)))


Название: Re: C++ || C# || Python
Отправлено: serg_hd от Август 16, 2011, 13:46
компилируемый язык (..., Java, ...)

Программы на Java транслируются в байт-код, выполняемый виртуальной машиной Java (JVM) — программой, обрабатывающей байтовый код и передающей инструкции оборудованию как интерпретатор.
Так что пруфлинк фстудию!=)


Название: Re: C++ || C# || Python
Отправлено: brankovic от Август 16, 2011, 13:52
компилируемый язык (..., Java, ...)

Программы на Java транслируются в байт-код, выполняемый виртуальной машиной Java (JVM) — программой, обрабатывающей байтовый код и передающей инструкции оборудованию как интерпретатор.
Так что пруфлинк фстудию!=)

а Just In Time Compiler он как бы и не компайлер вовсе?


Название: Re: C++ || C# || Python
Отправлено: serg_hd от Август 16, 2011, 14:05
а Just In Time Compiler он как бы и не компайлер вовсе?
Wiki:
Часто к недостаткам концепции виртуальной машины относят то, что исполнение байт-кода виртуальной машиной может снижать производительность программ и алгоритмов, реализованных на языке Java. В последнее время был внесен ряд усовершенствований, которые несколько увеличили скорость выполнения программ на Java:
- применение технологии трансляции байт-кода в машинный код непосредственно во время работы программы (JIT-технология) с возможностью сохранения версий класса в машинном коде;

Недокомпайлер ;)


Название: Re: C++ || C# || Python
Отправлено: Lagovas от Август 19, 2011, 00:31
serg_hd. Речь не в простоте, а в требуемом времени. Мой звучит так, стоит ли тратить кучу времени на плюсы, или достаточно чего то проще. К примеру можна сравнить 2 машины. Лексус и жигули. Цель какая, добраться из точки А в точку Б. Комфортней это делать в лексусе, и меньше напряга, ибо не надо хорошо разбираться во всех костылях и внутренностях жигулей. Ибо они же сломаются несколько раз по дороге и надо знать как их чинить.