LINUX.ORG.RU
ФорумTalks

“Программируйте с использованием языка, а не на языке” vs быдлокодерские и небыдлокодерские языки


4

2

//Видит бог, тему хотел создать в Talks...

Здравствуйте. Я новичок в программировании, опыта работы у меня нет. Следовательно какие-то особенности работы программиста, явления в программировании и “подводные камни” для меня могут быть скрыты. Сейчас я подыскиваю работу или место для стажировки и мне стали доступны вакансии C#-программиста и Python-программиста.

И вот в чём мой вопрос.

Я заметил, что существует два образа мышления среди программистов:

1. “Программируйте с использованием языка, а не на языке”. Программист – это образ мышления, способность к абстракции, логике, знание алгоритмов. Язык – это лишь инструмент для выполнения определённой задачи. Если ты хороший программист, то ты (с некоторыми оговорками) можешь решать разные задачи, на разных языках.

2. В мейнстримовых языках снижают порог вхождения. Их делают простыми. Технологии развиваются таким образом, чтобы сделать создание программ максимально простым и быстрым. Это правильно, но приводит к тому, что программисты “тупеют”, можно быть программистом, не зная основопологающих и очень важных вещей. Таким образом появляется деление на “быдлокодерские” и “небыдлокодерские” языки. Соответственно, программирование на “быдлоколерских” языках какбы отупляет.

С одной стороны есть C#. Он считается, как мне показалось, именно “быдлокодерским”. С другой стороны Python. Конечно, не haskell какой-нибудь, но язык (опять же – как мне показалось), считается серьёзным, пользуется популярностью в академиечских кругах, сам видел MIT'шные курсы на нём.

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

И в итоге, главный вопрос: в начале карьеры, стоит ли выбрать программирование на серьёзных языках (то есть, принять ли правильным пункт 2), или не парить себе мозг (принять пункт 1)? Или возможно, даже если первый пункт верен, всё равно стоит предпочесть Python?

Перемещено post-factum из general


APL - спасет мир!

anonymous
()

По-первых. C# - более серьезный язык для для более больших приложений чем Python. Во-вторых тебе нужно уметь программировать и быстро разбираться в любом инструменте или ЯП, хотя не сразу у тебя это будет получаться. Начинать лучше с C# если выбирать их этих двух. Но Python очень хороший язык для своих целей (GUI приложения для *nix, скрипты, веб-сайты). Особенно которые пишутся одним или несколькими людьми. C# предназначен для разработки софта с длительным временем существования, неясными сразу требованиями с точки зрения масштабируемости и фичами, вообщем дорогой большой софт.

vertexua ★★★★★
()
Последнее исправление: vertexua (всего исправлений: 1)
Ответ на: комментарий от vertexua

Но у C# есть сильная проблема, которой лишены многие другие платформы. Если сильно подсядешь, то заработаешь Microsoft головного мозга. Он определяется обилием слов «Microsoft поддерживает», «Microsoft не поддерживает», «Microsoft не разрешает», «Microsoft не поощряет», «Microsoft не рекомендует». А мир внезапно шире и твои проблемы могут решаться шагом в сторону. Но ты его уже не можешь сделать, ты видишь программирование из мира Windows, Visual Studio, Microsoft

vertexua ★★★★★
()

если стоит цель быстро найти работу - пожалуй python будет лучше, но вообще, зацикливаться на чем-то одном не нужно

и C# и python могут считаться быдлокодерскими, порог вхождения и там и там достаточно низок, с другой - позволяют делать вполне серьёзные вещи(хоть и «не haskell какой-нибудь» :D)

lazyklimm ★★★★★
()

Лучше выбрать программирование на серьезных языках программирования. И Python тоже можно предпочесть. Не языки быдлокодерские, а программы.

aptyp ★★★★
()

начале карьеры, стоит ли выбрать программирование на серьёзных языках

если стать быдлокодером является твоей целью, то конечно нет.

Deleted
()

И в итоге, главный вопрос: в начале карьеры, стоит ли выбрать

Нету быдлоязыков. Твой скилл программиста не зависит от языка. Я в своё время начинал программировать на машинных кодах программируемых калькуляторов, продолжил на Focal (это такой предельно упрощённый «недобейсик»). Оттачивал скилл я на Basic'е. Куда уж «быдлее» :) Правда, с примесью ассемблера обычно. Вообще, где-то в это же время прошли 2-3 ассемблера. Но они оттачиванию скилла не способствуют :D Потом были Forth, VisualBasic, Си/Си++, немного FORTRAN'а. Это то, на чём практические задачи решал. В конце 1990-х подобрался немного к Java. 2000-й встретил на Perl'е. С примерно 2001-го и по сей день — в основном на PHP. В 2005..2007гг. вёл крупный проект на Java. Пописываю сегодня немного на Python. Но в основном, как писал — PHP.

Наблюдал за эти годы ещё нескольких программистов с похожими и не похожими ветками языков — никак языки на квалификацию не влияют :) Если у тебя есть склонность и желание, то ты и на Брейнфаке, наверное, сможешь поднимать свой уровень. Если нет, то никакой Haskell с Lisp'ом не спасут.

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

Compose

Не нашел, даже по статье в википедии не удалось воспроизвести. Может какая-то фича Gnome 3

vertexua ★★★★★
()

Программирование, оно не на языках, оно в парадигмах. Доминирующая в индустрии парадигма — объектно-ориентированная. Добавь сюда дискретной математики, UML-я с паттернами, познаний в API целевой платформы, желания изучать новые для себя «технологии» (sql, например) и готовности плясать под любимые менеджерами «методологии разработки»... и получишь вполне годного девелопера.

Выбор между сишарпом и пистоном — вторичен.

Manhunt ★★★★★
()

Есть программисты, которые пишут для того, чтобы заработать. Как правило их программы тоже должны приносить доход, поэтому они должны писаться так, чтобы их можно было легко и быстро понять другим людям, которые работают программистами (и чтобы таких людей было достаточно много); они должны содержать как можно меньше ошибок; они должны работать в определенных ресурсных ограничениях (достаточно быстро и есть достаточно мало памяти); они должны дорабатываться достаточно быстро под меняющиеся требования. Такие ЯП как джава, сишарп, с++, пайтон, php удовлетворяют этим требованиям.

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

Есть люди, которые застряли в прошлом (или прошлых) десятилетиях. Они используют языки из прошлой эры, инструменты из прошлой эры. Зачастую вполне хорошо используют, опыт очень важен. Лисперы, дельфисты, пл/1, перловики, емаксеры, вимеры, и т.д. В принципе зрелый инструмент хорош в каком то плане. За десятки лет его отшлифовали до блеска и со своей работой он справляется на ура, есть куча руководств, людей, умеющих его использовать. Но для коммерческих задач в перспективе эти инструменты не оптимальны.

Есть студенты, которые очень хотят быть непохожими на остальных. Отсюда идут все эти быдлокодеры (я элитный хаскелист, а вы убогие быдлокодеры). Это обычно проходит. Но таких людей очень заметно и иногда создается впечатление, что их действительно много. Не много, просто они кричат громко.

Ну и есть разного рода тролли, которые мастерски умеют раздувать конфликты на базе противоречий между этими группами людей.

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

Legioner ★★★★★
()
Ответ на: комментарий от Legioner

Все правильно сказал

Ну и есть разного рода тролли, которые мастерски умеют раздувать конфликты на базе противоречий между этими группами людей.

Чорд, я уже думал меня не заденет

vertexua ★★★★★
()
Ответ на: комментарий от vertexua

Но у C# есть сильная проблема, которой лишены многие другие платформы. Если сильно подсядешь, то заработаешь Microsoft головного мозга. Он определяется обилием слов «Microsoft поддерживает», «Microsoft не поддерживает», «Microsoft не разрешает», «Microsoft не поощряет», «Microsoft не рекомендует». А мир внезапно шире и твои проблемы могут решаться шагом в сторону.

Мир = 99% венды + 1% линуксы, так что да, мир шире мира вендового ПО на 1%. ТС рискует всю жизнь спокойно программировать под венду и не страдать от незнания писона или чего-то там линуксового.

Alve ★★★★★
()
Ответ на: комментарий от vertexua

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

Manhunt ★★★★★
()
Ответ на: комментарий от Alve

Мир = 99% венды + 1% линуксы

Кроме десктопа на почти любом девайсе стоит линукс. У меня телефон и планшет на андроиде, телевизор и роутер просто на линуксе. Интернет, которым я пользуюсь состоит из шлюзов и роутеров на линуксе, а так же серверов этих сайтов на линуксе с базами на линуксе. Винда могла бы быть на моем ноуте, это единственное потенциальное место к чему она пригодна. И да, ядерные ракеты которые тебя убьют 21го ты уже знаешь кто запустит

vertexua ★★★★★
()
Последнее исправление: vertexua (всего исправлений: 1)
Ответ на: комментарий от Alve

Мир = 99% венды + 1% линуксы

Чё-то ты как-то половину мира выкинул. Даже львиную долю? А как же iOS, Андроид, Web, банковские системы, тонны разнообразных сервисов?

KRoN73 ★★★★★
()
Ответ на: комментарий от Manhunt

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

Я не забираю у него лавров, но шарпосрач уже начался если че

vertexua ★★★★★
()

Да хоть на лиспе пиши. Кому какое дело до того, на чем продукт написан? Лишь бы не тормозил и не жрал кучу памяти.

Eddy_Em ☆☆☆☆☆
()

Смешно просто читать такое, столько заблуждений и все в одном посте.

1. Язык диктует подход. Разработчик (забудьте слово программист) не может заставить инструмент быть таким, как он хочет, и никогда не найдет инструмент идеально подходящий для своего мышления.

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

C# сложнее нежели Python. Разрабатывал и на том, и на том.

Не читай интернеты.

anonymous
()
Ответ на: комментарий от anonymous

Или ты через гугл транслейт читал, но в этом треде так и говорят

vertexua ★★★★★
()
Ответ на: комментарий от Legioner

Такие ЯП как джава, сишарп, с++, пайтон, php удовлетворяют этим требованиям.

Мама дорогая! И как это вяжется с

должны работать в определенных ресурсных ограничениях

?

Хаскель, наверное, самый яркий представитель языков такого рода

Жесть! И какой процент хаскелистов среди научников?

Но для коммерческих задач в перспективе эти инструменты не оптимальны.

А чего это ты только о коммерции думаешь?

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от vertexua

шарпосрач уже начался если че

Противопоставление шарпа и пистона имеется еще в ОП, не вижу твоей заслуги.

Manhunt ★★★★★
()
Ответ на: комментарий от Manhunt

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

vertexua ★★★★★
()
Последнее исправление: vertexua (всего исправлений: 1)

Все, просрал такой годный тред...

vertexua ★★★★★
()

Таким образом появляется деление на “быдлокодерские” и “небыдлокодерские” языки. Соответственно, программирование на “быдлоколерских” языках какбы отупляет.

попробуй несколько разных - сишечка и SICP ждут тебя. Не надо зацикливаться на быдлоскриптах, классику знать тоже надо.

С одной стороны есть C#. Он считается, как мне показалось, именно “быдлокодерским”.

C# работает _только_ в MS-Windows. А пайтон - везде(почти. Ъ одмины его не любят). В остальном такое-же говно.

Конечно, не haskell какой-нибудь, но язык (опять же – как мне показалось), считается серьёзным, пользуется популярностью в академиечских кругах, сам видел MIT'шные курсы на нём.

mit-scheme? дык это перепевка. Можно хоть на BAT файлах написать, при желании.

или не парить себе мозг (принять пункт 1)? Или возможно, даже если первый пункт верен, всё равно стоит предпочесть Python?

пайтон простой и логичный скриптовый ЯП годный для поделок и обучения. C# это маздайный быдлокод. Решай сам...

drBatty ★★
()
Ответ на: комментарий от drBatty

Даже не знаю что сказать... Ты уже достаточно сказал чтобы это не восприняли

vertexua ★★★★★
()
Ответ на: комментарий от vertexua

По-первых. C# - более серьезный язык для для более больших приложений чем Python.

бездоказательное враньё.

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

типа фотошопа что-ли? хорошо, что таких как ты к ним не подпускают...

drBatty ★★
()
Ответ на: комментарий от Eddy_Em

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

Жесть! И какой процент хаскелистов среди научников?

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

А чего это ты только о коммерции думаешь?

Компьютеры придумали, чтобы решать военные задачи и считать деньги в банках, принципиально ничего не изменилось, имхо. Ну и я в основном сталкиваюсь с коммерческим программированием, вот и думаю о нём.

Legioner ★★★★★
()
Ответ на: комментарий от vertexua

Мне Python понравился, но хочется клавиатуру с клавишей self

найди нормальный редактор. А лучше освой VIM - в жизни пригодится (если хочешь писать что-то сложнее хелловорлда)

drBatty ★★
()
Ответ на: комментарий от drBatty

Обращаюсь к ЛОРовцам, пожалуйста, кому не лень и он полон сил, обьясните ему какую он ересь несет, ради такого школьника лень двигаться.

vertexua ★★★★★
()
Последнее исправление: vertexua (всего исправлений: 1)

Учи C#, Python для Windows такая же диковенка, как фугу на пьяном столе Васи с соседом. Можешь еще C,С++ выучить, если хочешь поглубже влиться. Но C# тебе с головой, что бы найти работу, C# или Java. Если планируешь веб, то PHP,Ajax,JScript,Query,CSS,HTML и без работы не останешься.

makeB
()
Ответ на: комментарий от Alve

Мир = 99% венды + 1% линуксы, так что да, мир шире мира вендового ПО на 1%. ТС рискует всю жизнь спокойно программировать под венду и не страдать от незнания писона или чего-то там линуксового.

там уже всё написано, и ты не нужен. Не в венду, не в адобу тебя не возьмут. а вот быдлокодить на сервера и на всякие быдлодевайсы надо. А вот там таки линуксы и жабы. Или пыхыпы. Ну уж никак не венда.

drBatty ★★
()
Ответ на: комментарий от vertexua

Пожалуйста, остановись нести бред

пожалуйста, кому не лень и он полон сил, обьясните ему какую он ересь несет

вот ты и объясни. Кстати VIM для написания _кода_ куда как годнее любой IDE. Это общепризнанно.

drBatty ★★
()
Ответ на: комментарий от drBatty

вот ты и объясни. Кстати VIM для написания _кода_ куда как годнее любой IDE. Это общепризнанно.

Я слаб в понимании твоей психологии, прости. Может сам подскажешь как лучше всего обьяснить если в твоем воспаленном мозгу vim удобнее для написания кода чем IDE?

Поскажи пожалуйста при трех перегруженых методах с разными параметрами, как мне найти где он используется в коде? Или у меня есть метод getSize(). Это очень распространенное название метода, в многих классах. Как мне найти где он вызывается у класса А?

Или вот у меня есть интерфейс с тремя методами. Как посоветуешь в vim нагенерировать его имплементацию с пустым телом, не хочется печатать. Ну и вот у меня есть выражение a.getB().getSomething(), я не точно знаю тип, хотел бы узнать тип сразу и методы в нем. Просто getSomething() есть одновременно в 5 классах

Навигацию с метода в место где его наследуют не подскажешь и назад?

vertexua ★★★★★
()
Последнее исправление: vertexua (всего исправлений: 1)
Ответ на: комментарий от drBatty

VIM для написания _кода_ куда как годнее любой IDE. Это общепризнанно.

Где, кем? Пруф пожалуйста (только не на кучку религиозных фанатиков).

makeB
()

Зависит всё от привитой культуры программирования. Есть языки на которых нельзя писать хорошие актуальные прикладные программы, но которые прививают культуру программирования. А есть языки на которых можно хоть слона в бублик завернуть, но без этой самой культуры, текст программы будет квинтэссенцией быдлокодинга

Pinkbyte ★★★★★
()
Ответ на: комментарий от Legioner

джава вполне быстрый язык

По всему, что я видел, не сказал бы.

Сишарп от джавы в этом плане практически не отличается

Зато C# считается, пожалуй, самым быдлокодерским (после PHP).

Науку я имел в виду именно компьютер саенс

А, так бы и говорил.

Компьютеры придумали, чтобы решать военные задачи и считать деньги в банках, принципиально ничего не изменилось, имхо

И научные задачи выполнять. И играться.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Зато C# считается, пожалуй, самым быдлокодерским (после PHP).

Мало ли что там считается, на нем прекрасно выполняется лвиная часть практически любого вин-проекта (именно вин, ориентироваться на никс смысла не вижу, если цель не just for fun).

makeB
()
Ответ на: комментарий от vertexua

Я слаб в понимании твоей психологии, прости. Может сам подскажешь как лучше всего обьяснить если в твоем воспаленном мозгу vim удобнее для написания кода чем IDE?

разве в текстовом режиме текст писать не удобнее? В GUI удобно только кнопки на форму перетаскивать, но это разве программирование?

Поскажи пожалуйста при трех перегруженых методах с разными параметрами, как мне найти где он используется в коде? Или у меня есть метод getSize(). Это очень распространенное название метода, в многих классах. Как мне найти где он вызывается у класса А?

для этого плагины какие-то имеются. Мне они не нужны.

Или вот у меня есть интерфейс с тремя методами. Как посоветуешь в vim нагенерировать его имплементацию с пустым телом, не хочется печатать. Ну и вот у меня есть выражение , я не точно знаю тип, хотел бы узнать тип сразу и методы в нем. Просто getSomething() есть одновременно в 5 классах

это тоже есть. Вообще копипастить в vime и плодить индусский код (слегка разный) в VIMе очень просто - пара-тройка нажатий на кнопки, и новый код готов. Повтор редактирования так вообще одной точкой делается. Набил первый класс, нажал дважды на точку, и готовы три класса. Ещё одна команда, и все три класса готовы к работе. Что до типов, то о них думать вообще не нужно в нормальном ЯП. Пусть компилятор думает, у него голова больше. Твоя a.getB().getSomething() должна возвратить именно то, что должна. А если это не так - проблема в тебе. Получишь warning, намекающий на то, что ты ламо...

drBatty ★★
()

не знаю.

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

AGUtilities ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.