LINUX.ORG.RU
ФорумTalks

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


4

2

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

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

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

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

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

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

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

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

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

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


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

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

Потому что IDE как раз для эффективного набирания текста, в контексте твоего ЯП, а не просто покрасить в три цвета и уметь сохранять через ESC+:dsaajajdakjdhkhfskdhf. И это не сование кнопок по окошку как ты на Delphi насмотрелся

Что до типов, то о них думать вообще не нужно в нормальном ЯП

Ну все понятно )

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

Есть языки со строгой структурой программы и жестко заданными ограничениями(Pascal, но не Delphi/ObjectPascal и производные), есть языки где можно делать что угодно(и именно они нужны в продакшене) - это C/C++, Java и прочие.

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

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

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

вполне годный ЯП, если конечно у тебя есть возможность покупать для каждой задачи свой сервак. А проблемы нищебродов Ынтерпрайз нии бут.

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

хуже. 95% сишарперов ничего сложнее «скачать бесплатно и без СМС» просто не делали.

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

Под мастдайку пусть хоть на пыхпыхе пишут, лишь бы это тормозное угребище в линукс не пихали!

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

makeB
()

Вот если бы ты выбирал между python и java - было бы понятно. А так, бери python и не мучайся.

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

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

ППКС. Единственный стоящий пост so far.

schizoid ★★★
()

1. Хочешь работать программистом - работай программистом.

2. Хочешь заморачиваться по поводу правильности твоих действий - заморачивайся. Когда надоест, см. п. 1.

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

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

ты не задумывался, что кроме говнодесктопов есть и другие компы? И что доля говновенды неуклонно падает(ага, не за счёт GNU/Linux, но какая разница?). 95% хомячков уже поняли, что кроме планшета с фконтактом им _ничего_ не нужно. Богатых держат пока понты, бедных - жадность. Это временно. Скоро на десктопах останутся только гики, а им ваша говновенда и не нужна.

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

есть языки где можно делать что угодно(и именно они нужны в продакшене) - это C/C++

В том числе *** защемить. Именно такой исход истории у тех, кто в начале C# учил, а потом на сабж прыгнул :]

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

Под мастдайку пусть хоть на пыхпыхе пишут, лишь бы это тормозное угребище в линукс не пихали!

кстати - php вполне годный ЯП, если руки не из жоппы. Другое дело, что интерфейса для всяких Qt насколько я знаю нет. Потому плеер на пхп написать будет сложно.

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

Если что, то C/C++ знакомы мне по книгам Крупника, Кернигана&Ритчи, Дейтелей, но не больше.

qawsq
() автор топика

Пиши на sclang

Там есть рекурсия, это клёва

> f = {|n, res = 1|  if (n==0) {res} {f.value (n-1, n*res)}}
> f.value (10)
3628800

Есть ООП:

> 6.do ({|i| i.postln})
> (1,3..7).do ({|i| i.postln})

Есть куча синтаксического сахара:

f = _ + 5
f.value (3)
8

Есть map/reduce:

> 8.collect ({|x| 2*x})
[0, 2, 4, 6, 8, 10, 12, 14]
(1..8).reduce ({|x,y| x+y}) == (1..8).sum

Интересные операции с массивами:

> [2,3] + [4,5]
[6,8]

> [2,3] + .t[4,5]
[[6, 7], [7, 8]]

Рутины (оля итераторы в пистоне):

> f = Routine.new ({var a = 1; while {true} {a.yield; a=a+1}})
> f.next
1
> f.next
2
> f.next
3

И такое:

> all {:x, x <- (1..20), x.mod (3) == 0}
[3, 6, 9, 12, 15, 18]

В общем это вам не Си какое-нибудь, а Ъ интерпрайз язык, всем учить живо

anonymous
()

1. Pascal | Pithon 2. acm | C 3 Objective C

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

в начале карьеры ( в паралель с зашибанием деньги) - возми за правило в установленый срок ( скажем 1 месяц) - ознакамливатся с той или иной фундаментальной( не столько скурпулёзности как ТАОСЗ , сколько методически алгоритмы+ структуры данных = программы вирта , элементы программирования степанова, короче как ознакомился с одной выгугливай следующую)

сформируй вкус с стилю кода чтением заитересовавших тебя программ.

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

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

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

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

Есть некоторая особенность программистов на джаве в злоупотреблении паттернами, абстракциями. Софт получается очень функциональным, но могут быть проблемы с производительностью. Еще на джаве есть спорная философия — не оптимизируй, пока рак на горе не свистнет, лучше напиши еще одну фабрику визиторов. В итоге софт в целом работает приемлемо, но не реактивно. Как раз потому, что оптимизируют не так, чтобы летало, а так, чтобы не хотелось плеваться, не более. Но все это не проблемы технологии, а проблемы людей, её использующих. Та же идея очень шустро работает, в редакторе лагов нет, контекстная подсказка появляется в течение милисекунд.

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

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

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

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

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

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

Да, с виндовс-мобайл :] Коли за портативку речь идет, то конечно Java,C++, хотя я думаю мелкософт и на эту нишу запрувит свой нетфреймворк/моно.

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

Потому что IDE как раз для эффективного набирания текста, в контексте твоего ЯП, а не просто покрасить в три цвета

давай померимся расскрасками? Сколько у тебя ЯП и форматов файлов умеет? Сколько цветовых схем? Не забывай заглатывать поглубже со своей IDE...

и уметь сохранять через ESC+:dsaajajdakjdhkhfskdhf.

у меня просто F2. Привык. Кстати, про «сохранять» - большинство IDE не умеют работать с hg, и тем более мержить в нём проекты. Разве что для KDE есть приблуда. И конечно для VIM'а. Ну а вы работайте по старинке, сохраняя версии в виде архивов «my prog 12.12.2005.RAR» - очень удобно. Всего в три клика и полчаса!

И это не сование кнопок по окошку как ты на Delphi насмотрелся

причём тут делфи? никогда не юзал. юзал QT designer, а до того поел говна в M$VS.

Ну все понятно )

что тебе понятно? ты вот думаешь о том, что и куда сувать своей девушке? Вот это называется «продуманная архитектура системы». Так и с программой должно быть. (хотя педерасты придумали утиную типизацию)

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

давай померимся расскрасками?

Зачем мне эти расскраски? Радуйся что vim умеет красить какой-то R, но больше ничего о нем не знает.

Кстати, про «сохранять» - большинство IDE не умеют работать с hg

Это какие-то неправильные IDE. Везде все работает

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

есть языки где можно делать что угодно(и именно они нужны в продакшене

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

А уж в жабе так вообще спецом все костыли повыкидывали. Вплоть до x++ + ++x. В общем-то правильно. Хоть и тормозит из-за этого.

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

Ты Java в vim пишешь? Если да, то уверен ни разу ты ни одной не писал )

я вообще не пишу в жабе. К сожалению. А чем плох vim для жабы?

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

стоит устраиватся на мишион-критикал всяческий эмбедед и космос видимо тебе.

qulinxao ★★☆
()

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

наверное вам в мерчандайзеры

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

очень просто

там( как и в С# ) очень многословные интерфейсы что без хорошей интеграции редактора с парсером целевого языка ( всяческий интелисенс унд рефакторинг синтаксических деревьев) превращает в ад написание софта в сравнении с теми языками котодые создавалиcь в ed'е и максимум оперативного что было это поиск и замена по регулярным выражениям

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

да, проблема...

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

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

В общем это вам не Си какое-нибудь, а Ъ интерпрайз язык, всем учить живо

а в пхп есть вычисление метрики Левинштейна. Съел? Вот как научишь своё говно вычислять Over9000 всякого говна, так и приходи. А пока твой ЯП интересен только 3.5 задротам. Любят STL с нуля писать.

drBatty ★★
()

Ладно, поставим вопрос таким образом.

Голосование.

Вы новичок. Выбираете из двух вакансий: Python и C#. Что выберете и почему?

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

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

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

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

молотит у тебя какой-нить оракл своей SQLю, а ява так - прохлаждается. А эти ваши СУБД пишут ВНЕЗАПНО на сишечке. Хотя жаба интерпразная, хаскель крутой, а схема многозадачная.

Есть некоторая особенность программистов на джаве в злоупотреблении паттернами, абстракциями. Софт получается очень функциональным, но могут быть проблемы с производительностью. Еще на джаве есть спорная философия — не оптимизируй, пока рак на горе не свистнет, лучше напиши еще одну фабрику визиторов. В итоге софт в целом работает приемлемо, но не реактивно. Как раз потому, что оптимизируют не так, чтобы летало, а так, чтобы не хотелось плеваться, не более. Но все это не проблемы технологии, а проблемы людей, её использующих. Та же идея очень шустро работает, в редакторе лагов нет, контекстная подсказка появляется в течение милисекунд.

ага. на i7?

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

Вы новичок. Выбираете из двух вакансий: Python и C#. Что выберете и почему?

Выберу сишарп, почему? Потому что работы больше, да и лучше с него начать, он потруднее питона, потом питон легко будет выучить при необходимости.

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

а в пхп есть вычисление метрики Левинштейна.

Кстати пример - говно и не в тему. Это от библиотеки зависит, а не от языка

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

Да, с виндовс-мобайл

не встречал. Где ты их покупаешь?

Коли за портативку речь идет, то конечно Java,C++, хотя я думаю мелкософт и на эту нишу запрувит свой нетфреймворк/моно.

не думай. На больших компьютерах это не нужно, на маленьких - не нужно, что остаётся? Твой десктоп что-ли?

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

Вы новичок. Выбираете из двух вакансий: Python и C#. Что выберете и почему?

Зайду на hh.ru и выберу тот, где зарплаты выше.

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

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

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

ооп это религия.

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

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

Зачем мне эти расскраски? Радуйся что vim умеет красить какой-то R, но больше ничего о нем не знает.

расскраски это _очень_ важно. Как и синтаксис. Большинство ошибок ловится синтаксисом и расскраской. А иной раз приходится вчитываться в незнакомый R. В привычном ЯП расскрасска нужна не настолько, на самом деле.

Это какие-то неправильные IDE. Везде все работает

что-то я не замечал... примеры можно?

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

не встречал. Где ты их покупаешь?

Гхм «видишь виндовсфон, и я не вижу - а он есть!», в шутку же сказал, чувство юмора со своими языками совсем растеряли :]

На больших компьютерах это не нужно, на маленьких - не нужно, что остаётся? Твой десктоп что-ли?

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

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

там( как и в С# ) очень многословные интерфейсы что без хорошей интеграции редактора с парсером целевого языка ( всяческий интелисенс унд рефакторинг синтаксических деревьев) превращает в ад написание софта

проблема не в ЯП и не в редакторе. Промлема в засранном нэймспейсе.

сравнении с теми языками котодые создавалиcь в ed'е и максимум оперативного что было это поиск и замена по регулярным выражениям

регулярные выражения могут почти всё (в Vim'е и emacs'е - вообще всё). Просто ты не умеешь их готовить.

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

молотит у тебя какой-нить оракл своей SQLю, а ява так - прохлаждается.

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

А эти ваши СУБД пишут ВНЕЗАПНО на сишечке. Хотя жаба интерпразная, хаскель крутой, а схема многозадачная.

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

ага. на i7?

Core 2 duo вроде.

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

Вы новичок. Выбираете из двух вакансий: Python и C#. Что выберете и почему?

питон для первых программок на 100 строчек, а дальше читать K&R и/или SICP. После того, как осилите примеры - читайте как это _правильно_ делать у Кнута.

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

Ололо, это часть supercollider - профессионального софта для синтеза музыки.

и что с того? админы свои быдлоскрипты на bash'е пишут, и что? Они даже не программисты, если по честному. Впрочем, как и твои музыканты.

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

говнорюшечек в _любом_ ЯП сейчас полно.

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

Кстати пример - говно и не в тему. Это от библиотеки зависит, а не от языка

что, библиотеки не нужны? Тогда бегом читать Кнута и учить MIXX! Ибо без библиотек никакой ЯП нафиг не нужен никому, кроме 3.5 извращенцев.

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

Зайду на hh.ru и выберу тот, где зарплаты выше.

глупость советуешь. думаешь масдайщики просто так много получают? это адъ и израиль.

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

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

у корпорации бобра и у огрызочников денег тоже хватает. поглядим...

drBatty ★★
()

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

Скоро ты заметишь что один другому не противоречит

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

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

неужели именно на жабе картинки ресайзят? или всё-же либами на сишечке да асме? Тоже и про всё остальное.

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

сишечка слишком специальная, «один раз» не получится - сожрут. Это не ява, в которой код действительно много лет держится (если не быдлокод).

Core 2 duo вроде.

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

drBatty ★★
()

На 100% согласен с вот этим:

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

Для этого ты должен попробовать несколько языков. Моя рекомендация: C/C++, asm, PHP, JavaScript, bash, perl, tcl, ну и поиспользуй HTML/XML, базы данных. При том на всех кроме asm (уж очень он специфичный) рекомендую написать что-то полезное, то есть зайти дальше чем «Hello world!» понять и даже прочувствовать сферы где он удобен. Я, например, только недавно понял как офигенно удобно ставить $ перед переменной в PHP, а точнее почему это удобно в ракурсе предназначения этого языка.

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

ну хз, мне возможностей c99 хватает, а ведь есть еще c++11, который вообще жесть и не особо понятно, зачем это все нужно в императивном языке

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