LINUX.ORG.RU

Какой ЯП выбрать?


2

1

Всем привет. Вопрос этот поднимался 100500 раз в интернетах, но я опять задам его. Мне 15 лет, дружу с математикой (и очень люблю её), но вот ответ на свой вопрос я так и не нашёл. Больше мне нравятся скриптовые языки (по синтаксису и «смыслу») и хочется заниматься вебом (серверная, а не клиентская часть). До этого я не программировал и сказали, что PHP/Ruby/Perl как первый ЯП не подходят, а вот Python подходит отлично. Правда ли это? И какую лит-ру по Python 2.x подскажите (говорят Python 3.x для веба совсем не подходит).

Но! Прежде чем заняться вебом, я хотел бы вообще выучить алгоритмы и т.д, т.к хочу стать программистом, а не тупым кодером. Так что книги заточенные под веб (если брать книги по Python), а надо «общую» книгу, где объясняются азы и самого ЯП, и программирования в общем.

Паскаль/Делфи/Бэйсик сказали, что будет пустой тратой времени и хорошему ничему я на них не научусь (да и сам как то устаревший паскаль/бейсик и бесполезный (для меня и моего направления) делфи учить не хочется).

Всем заранее спасибо!

Перемещено maxcom из general

Паскаль/Делфи/Бэйсик сказали, что будет пустой тратой времени

тебя обманули.

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

i8080

в анотации наряду с 80 указан и 86 видимо 89год даёт о себе знать психология"договорных цен и прочей не обманеш не продаш" -книжка вокруг 8080

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

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

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

т.е лисп как инструмент ожидаемо использовать как интенсивно «марковский» - что и на ассемблере делали - но это не было общераспространённой отличительной чертой.

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

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

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

Машинные коды делаются для _машины_. То есть для того, чтобы
процессору удобно было их исполнять. Удобство человека тут и
рядом не пробегало.

сам-то понял что сказал? А кто код писать будет?

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

Каптя: owntoao succession

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

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

По-моему в той книге был PDP-11 (на котором я писал тогда) или что-то похожее, но я совершенно не уверен. Вероятно, было более раннее издание с таким или похожим ассемблером. Когда наметился тренд на персоналки, возможно, автор просто переписал свою книгу под Intel. Определенно, обложка была другая. Small C был. Ну, да ладно. Бог с ней!

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

Ящитаю, это проблемы компилятора — как превратить удобный для человека код в удобный для машины код.

я тоже так считаю. Проблема в том, что 50 лет назад даже ЯП нормальных не было, даже тупого C. Потом появилось всё(в зачаточном состоянии), лет 40 назад сделали микропроцессоров, но они были настолько медленные, что код тоже ручками надо было писать. Да и компиляторы тогда были очень глупые. Потому i8080 проектировался в расчёте на белковых кодеров. А i8086 - его прямой потомок по системе команд. Сегодня сами команды мы не наблюдаем, они скрыты, виден только x86 совместимый интерфейс. Такой же, как 40 лет назад.

хотя никто ручками уже и не пишет.

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

видимо 89год даёт о себе знать психология"договорных цен и прочей не обманеш не продаш"

там очень похожая система команд, хотя и не совместимая. освоить 86 очень просто, зная 8080.

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

Машинные коды делаются для _машины_. То есть для того, чтобы процессору удобно было их исполнять. Удобство человека тут и рядом не пробегало.

сам-то понял что сказал? А кто код писать будет? Если ты не понял, я про ситуацию 50 лет назад, задолго до твоей JVM.

Для процессора были машинные коды, удобные для машины (в БК-0010 был такой режим, где можно было их вбивать вручную: там только восьмеричные числа и адреса). Для человека существует ассемблер, который по сути является мнемонической записью машинных кодов. Раньше на ассемблере писали. Это было обычным делом.

dave ★★★★★
()

Моё мнение: Python и C. Именно два языка.

Питон подойдет для быстрого изучения начальных понятий, ну там функции, if'ы, циклы, контейнеры, классы, строки и т.д. Можно не отвлекаться на избыточный синтаксис, memory management, статическую типизацию и т.п. поначалу.

А C желательно изучить, чтобы понимать, что оно там «под капотом» — указатели, виртуальная память, что такое стек и куча, сколько что на самом деле в байтах занимает, как вызываеются функции, что такое указатель на функцию, таблицы виртуальных методов и т.д. И всё равно все низкоуровневые API к ядру во всех ОС сделаны на C. Так что любой серьёзный программист C знать обязан.

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

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

сложно вообще определить такое понятие как «уровень ЯП».

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

какая разница, как вычислять? Для LISPмашины возможно рекурсия будет лучше, нежели цикл. Почему нет?

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

насколько знаю там похожая(частями идентичная??) система мнемоник - бин код как раз таки там сильно разный местами.

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

слу ну по смотри/читай Степанова

там реально то обьяснено , что я не могу.

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

знать как битики меняются важно - однако микроменеджить это полное преждевремменное.

qulinxao ★★☆
()

Лол, ветку про кофеварки и принтеры снесли полностью. Причём ветка приличная была без матов, не считая чановский и воровской сленг нашего юного нагибатора.

Не в бровь, а в глаз! Поздравляю анонимные коллеги!

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

таблица виртуальных не С.

полезно(для эрудиции )как чикен реализовал на С-стеке динамическую память - офигеный инсайт.

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

где можна ознакомится с теми скрижалями мудрости?

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

А Абельсон c Сассмана считают, что с него надо начинать обучение. Как думаешь, почему?

Они, наверное, думают, про программирование - это если не математика, то уж точно какая-нибудь наука. False, то программирование, что мы видим - это ремесло.

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

Ничтожество, ты хотя бы видело машинные коды IBM701?

неа. я не настолько стар. Это ты знакомые буквы в SICP ищешь? Молодец.

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

Нельзя учиться программированию в 15 лет.

Я в 15 лет на Бейсике программировал на «Электороника МС-0511».

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

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

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

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

вот ещё ( в приложении сырец RatC(вариант SmallC) для i80 и для VAX) Р.Берри Б.Микинз Язык Си Введение для программистов.

забавно издания середены 80ых A Book ON C содержит в себе реализацию С-транслятора следующие редакции 90ых 0ых нет - показательно как изменилась ца.

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

то , что мы видим , и за что даже платят - это ещё на стадии предремесла (с) опять Степанов (в сравнении с математикой - даже на стадии до массового использования десятичной нотации)

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

насколько знаю там похожая(частями идентичная??) система мнемоник - бин код как раз таки там сильно разный местами.

понятно, что код разный, но есть ещё и такое понятие «архитектура». Там не была CDR и CAR, как в IBM701. Мнемоники были похожими именно потому, что 8086 был дальнейшим развитием 8080. Вот в PDP-11 тоже была совсем иная архитектура, совершенно непохожая на 8086 (И, ИМХО, лучше в 10 раз для 16и бит), но это никого не волновало.

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

слу ну по смотри/читай Степанова. там реально то обьяснено , что я не могу.

дай ссылку напочитать. смотреть не люблю.

знать как битики меняются важно - однако микроменеджить это полное преждевремменное.

я и не предлагаю «микромениджить битики», они сами по себе микромениджится для твоей любимой виртуальной машины, как её себе ТЫ представляешь.

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

Они, наверное, думают, про программирование - это если не математика, то уж точно какая-нибудь наука. False, то программирование, что мы видим - это ремесло.

математика - IRL тоже ремесло.

drBatty ★★
()

А си рассматривал?

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

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

Команды, которые коды, создавались для удобства процессора (минимизации схемы на кремнии, ускорения декодирования).

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

Р.Берри Б.Микинз Язык Си Введение для программистов.

Очень похоже, что она :) Я файлы не загружал, но обложка знакома.

Как ты нашел? Ну, ты молодец!

P.S. Vax-32 - это 32-битное продолжение 16-битного PDP-11 фирмы DEC. Потом была Alpha-64, но в итоге загнулась, к сожалению. До чего же красивый и простой ассемблер был!

Я потом пытался изучать ассемблер Интела, но было очень трудно после ассемблеров DEC. Сильно раздражало, что порядок операндов неправильный, да и там (по началу?) не было такого богатства способов адресации. В итоге бросил.

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

Команды, которые коды, создавались для удобства процессора (минимизации схемы на кремнии, ускорения декодирования).

По-разному бывало. Ассемблер VAX-11 создавался для удобства программирования.

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

Команды, которые коды, создавались для удобства процессора (минимизации схемы на кремнии, ускорения декодирования).

ага. EXX в Z80, LOOP в i8086 - это всё конечно «для ускорения» делали. Посмотри arm instruction set, увидишь, где «белковым формам» нет места. В i8080 так вообще команда NOP была, не как в 86 XCHG EAX, EAX, которая ничего не делает, а _специальная_ команда, с опкодом 0x00. (в 86 места не хватило, байтов всего 256).

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

но было очень трудно после ассемблеров DEC. Сильно раздражало, что порядок операндов неправильный, да и там (по началу?) не было такого богатства способов адресации. В итоге бросил.

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

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

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

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

ага. EXX в Z80,

Конечно. Получить, декодировать и исполнить однобайтную (IIRC) команду быстрее, чем все регистры на стэк выкладывать и потом обратно собирать.

LOOP в i8086

Экономия байтов и тактов на общем паттерне против портянки из декремента и условного перехода.

- это всё конечно «для ускорения» делали. Посмотри arm instruction set, увидишь, где «белковым формам» нет места.

У CISC и RISC разные подходы к микроархитектуре.

В i8080 так вообще команда NOP была, не как в 86 XCHG EAX, EAX, которая ничего не делает, а _специальная_ команда, с опкодом 0x00. (в 86 места не хватило, байтов всего 256).

В 8086 у NOP опкод 0x90. У 8086 EAX не было. У x86 сейчас вообще куча NOP'ов разной длины (для выравнивания), и что?

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

А в DEC всё было изначально продумано.

Увы, но в БК-0010 (и вероятно ДВК-2/3) были реализованы не все способы адресации.

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

А кто код писать будет?

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

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

математика - IRL тоже ремесло.

Теоретическая математика - чистой воды искусство, по всем параметрам и критериям. Ничего общего с ремеслом, наукой, инженерией и т.п. она не имеет.

anonymous
()

Очень интересно прочитать мнения умных и не очень (по мнению уважаемых анонимусов) (я так не считаю) людей. Спасибо. Пока остановился на C. Может и Lisp начну (слышал о его крутости мозго-умнения).

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

Очень интересно прочитать мнения умных и не очень (по мнению уважаемых анонимусов) (я так не считаю) людей. Спасибо. Пока остановился на C. Может и Lisp начну (слышал о его крутости мозго-умнения).

Книгу взял «Язык программирования C. 2-е издание» Кернигана и Ритчи.

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

делай все задание.

если сделаеш . к концу K&C будеш способен(и напишеш) написан свой транслятор С->целевой маш.код/асм

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

теоритическая математика искуство - ок. рекриация для гсм.

математика наука и её язык :) .

ps. теоритическая математика - ага , ага. масло маслистое.

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

математика наука

Что в математике научного? Наука основывается на гипотезах и экспериментах. В математике эксперимента не бывает - только личное мнение автора (самого математика) и читателей (других математиков). А качество теории рассматривается не с точки зрения объективных факторов соответствия реальности или практической пользы, а с точки зрения таких субъективных понятий как «красота теории». Даже понятия типа моды к математике применимы - то, что считали красивым (а значит годным, правильным) математики 19 века, математики 21 уже не котируют, например, и наоборот - то, что две сотни лет назад считалось уродством (плохим, неправильным), сейчас пример математической красоты.

ps. теоритическая математика - ага , ага. масло маслистое.

Да, прикинь. Она еще бывает прикладная.

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

Учи Java, тогда никакие другие языки тебе никогда не понадобятся.

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

:)

бывают приложения математики.

математика это раздел физики с дешёвыми эксперементами.

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

есть математика - это язык науки , который и есть наука.

«в той или иной дисциплине столько науки сколько в этой дисциплине математики» (с) [гугли сам]

разделение науки на частные зоны - очень замечательная черта индустриального общества - где знать «лишнее» «вредно».

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

А сразу 2 ЯП можно учить (с моим уровнем знаний)?

Можно одновременно учить ЯП и английский язык.

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