Pull to refresh
-6
0
megalol @megalol

User

Send message
>Если Вы хотите дать в короткие сроки хорошую алгоритмическую базу своему подавану, то, несомненно, Python, поскольку там есть мало вещей, которые будут отнимать у вас время
Javascript по этой причине
>Тем более насколько я знаю, в большинстве случаев людям сложно перейти с PHP на ту же Java, так как она для них слишком сложна.
А сразу на Java с чистого листа будет проще что ли? Когда не знаешь синтаксис цикла while и зачем он вообще нужен, а нужно еще и ковыряться с тем, чем Integer отличается от int вместо обучения собственно основам алгоритмизации? Опять эта предпосылка, что язык может испортить человека.
Так это и хорошо. Если начинать сразу с Java можно и не понять все эти магические пассы. С опытом можно будет открыть для себя какую-нибудь скалу и увеличить свой скептицизм в отношении унылого ява-ооп. По-моему 90% начинают с простых скриптовых языков (от бейсика для zxspectrum до php), но потом с апломбом говорят новичкам «ну уж вы то начинайте с ...» и далее любимый язык от явы и с++ до хаскеля и коммонлиспа.
Интерфейсы в языке с duck-typing не нужны по определению
Разница заключается в том, что в динамическом языке без частичного вывода типов и JIT (как в V8 или Julia — но не как в cpython) нужно постоянно проверять эти самые типы, постоянно искать методы по ключу словарях и т. п. То есть, условно — любой объект в языке есть HashMap[String, Object] из Java и любой obj.x это поиск в словаре, бросание исключения, если ключ не найдет, проверка типа найденного объекта, приведение типа, и, наконец, работа с объектом. Это все медленно, даже если весь байт-код преобразовать в машинные коды, причем настолько медленно, что особого смысла в этом нет. А написать JIT, который бы выводил типы и делал нормальный статический код, не так уж и просто и накладывает дополнительные ограничения на язык.
>я сам начинал с PHP и JS и точно могу это сказать.
И что, хреновый программист получился?
Ух ты сколько текста.
>Первый язык Basic, на котором я освоил Hello World и сложение двух чисел. Потом Pascal
>Я лично боюсь, что первый язык в виде Javascript может отбить желание программировать. Ну или сделает из человека недопрограммиста-скриптовика.
Ну тебе скриптовый Basic не помешал, а кому-то js должен помешать. Основная проблема в том, что ты уже смотришь с колокольни собственного опыта и разрабатываешь эдакую программу для техникума/ВУЗа (с ООП, асинхронным етц етц программированием), а первый язык программирования воспринимаешь уже как, не знаю, сексуальный опыт, который определит предпочтения на всю жизнь, и если он окажется плохим, — все, человек испорчен. Так не бывает. Если php-программист — дряной программист и не желает ничего учить, это не потому что его испортил php, а потому что ему его уровня достаточно для зарабатывания бабла, а свободное время он потратит на пиво и телок, если же кто-то начал с php и будет желать расти, ничего страшного с ним не случится. Начинающему нужны не тысячестраничные талмуды, ему нужен basic, в котором он нарисует свой отталкивающийся от стенок прямоугольник, перемножит матрицы или программно синтезирует и проиграет звук. И все это доступно в js из коробки.
А когда наберется опыта, человек уже сам поймет что ему нужно. Питон тут тоже неплох (хотя неструктурный basic уже не годится), но питон — это уже нужно пердолиться в консоль, устанавливая pyqt (я даже не представляю как это под windows делается), pyaudio и прочее, лиспы годятся только для тех, кто уже с детства программирует и ему дают MIT 6.001, а не для нормальных людей со среднестатистическим програмистским IQ.
И далее весь твой текст базируется на том, что раз на js тебе не нравится писать большие проекты («давайте все ебашить серьезный софт на батниках»), значит это плохой язык для начинающих, ведь начинающие только и делают, что пишут большие проекты. Начинающему не нужен ни PyQt, ни WPF, ни Angular, однако только js дает разумную «бейсиковую» альтернативу в виде canvas. А остальное будет только отвлекать от сути, а суть — дать человеку современный basic. И это не батники и не даже не vbs-скрипты на WSH. Зашел на jsfiddle и вперед.

>Ты хочешь сказать, что в вебе стабильность и ничего не меняется?
На том уровне, о котором я говорю — да. Когда появился canvas и audio. До того я рекомендовал питон. Хотя надо было рекомендовать руби. C# неплох, даже хорош, как первый статический язык, но лично мне VB6 нравился тем, что дефолтным типом там был Variant, и я не считаю, что люди должны начинать со статики — опять же, чисто по своему опыту.
Я зашел в профиль, там «Тролль. Нехороший человек. И вообще мудак», увидел нормального человека в общем, а тут опять начинается представление джентельменов со светского раута. Конечно я перехожу на личности, мы тут все не педагоги со стажем, пробовавшие разное, и выбор первого языка и есть личностное до нельзя. Не просто так тут многие ссылаются на свой опыт. Вот у меня опыт — VB6 (и некоторые другие даже VB под DOS) и полное отсутствие не только наставников, но и интернета, поэтому я топлю за то, что первый язык должен быть максимально доступным — не требовать изучение шеллов, линуксов, заковыристых фреймворков и прочей фигни. Потому что это можно делать потом, когда мотивация уже есть. Ты же предлагаешь противоположное, вместо изучения программирования изучать, как там запустить этот монструозный конвертор из языка в js, как потом этого монстра отлаживать, как изучить монстра WPF и т. п. Где там обучение собственно сути программирования, а не технологиям, которые меняются по 10 раз в год?
Javascript в этом плане язык получше (даже замыкания есть) и феноменальной доступности. Что еще нужно новичку? А ты уже начинаешь другой холивар, является ли js нормальным языком для [вставьте нужное], это неинтересный холивар.

>А, т.е. то, что javascript это фигня, которая компилируется в хрен-знает-что, а потом это все доходит до уровня ассемблерного кода — это не протекающие абстракции.
Там течь нечему. Возможные проблемы — ну браузер древний, ну памяти много. Это интуитивно понятно. Зато отладка родная для браузера и писать можно хоть в блокноте.
Разница только в масштабах. В гараже на прототип могут потратить зарплату, а предприятие может потратить миллион на работу десятка человек в течение месяца. Именно чтобы инвестор увидел и дал заказ. Преступление, конечно.
>Какой смысл изучать тогда javascript, почему бы не изучать один из них?
Потому что читай статью. Основное преимущество в том, что настроенная и мощная среда выполнения всегда под рукой и работает везде. Без протекающих абстракций «компиляции в Javascript» и фанбоев MS типа тебя с WPF.
dosbox в браузере через emscripten тормозит достаточно
Если бы все было так просто, не было бы ни разработки прототипов в гараже, ни венчурного финансирования, ни конкурсов. А это все есть, потому что прямой путь от ТЗ до серийного образца хорош только в сферах, где все требования неплохо изучены.
Нужно быть чрезвычайно замотивированным человеком, чтобы начать с С++
>Я ожидал этого шаблонного ответа
Вы сами шаблонный совестливец. Стыдно ему. Ребята взяли разработку для МКС (для стыдливых — разработка уже оплачена по линии роскосмоса), и пошли к военным за финансированием. Что там ожидалось увидеть, мега-скорости? Так это еще нужно разработать, пока есть только робот-ремонтник для космоса. А далее военные посмотрят, прикинут, и если увидят задачи (мне, как непрофессионалу, приходит в голову ликвидация аварий на АЭС или ремонт инфраструктуры под обстрелом), дадут денег уже на ТЗ под эти задачи. Не увидят задач — денег не дадут. По-другому не делается, или ожидалось, что они на свои деньги разработают терминатора, а потом будут показывать военным?
Пришел к тому же выводу. Наличие браузера под рукой дает очень низкий порог требования дополнительных околокомпьютерных знаний не нужно ни знаний о консоли, ни линукса. А возможностей — море. Для понимания что да как самое то. Что язык неидеален тоже неплохо — мир в принципе не идеален и идеальные модулы-2 не нужны никому. У товарещей с ассемблерами есть синдром «15 километров в гору зимой», другие увлекаются тем, что «раз я так обучался, все должны так же».
Хотел написать этот коммент. Для инженера boost::units просто супер. Куча ошибок и опечаток стала вылезать во время компиляции. Хотя нужно привыкнуть.
Я не говорил, что это не комильфо, просто упомянул способ, который мне нравится, а вы его не упомянули. Отвечал-то я вообще AppCoder. А так тут чистая вкусовщина. У меня на самом деле по F5 выполняется заданный compile-command, и поэтому я использую разные инстансы имакса под разные воркспейсы, так сказать. Можно было бы повесить больше функциональных клавиш (типа F5 компилирует С++, F7 — Java, F9 — запускает тесты), но этого нет, поэтому у меня бывал emacs на двух разных мониторах, но это были разные инстансы с соответствующим системным переключением между ними.
Что касается самого способа, я больше для себя написал, потому что предложение создать новое окно я увидел, а вот конкретный способ нет. Может AppCoder заинтересуется.
Почему не выйдет? На слепую зону можно вывести пустое окно и забыть о нем. Ну то есть тупо расширить на весь экран на оба монитора, а далее через C-x 2 и C-x 2 создать нужное число окон, спрятав невидимые. Мне это нравится по причине того, что на alt-стрелки я могу переключаться между окнами внутри окна и одно большое окно позволяет не заморачиваться с мониторами.
Если интересует менее кустарный способ, через C-x 5 2 можно создать второй фрейм (системное окно), далее поместить его куда нужно, и через C-x 5 o переключаться между ними. Естественно, перебиндив переключение на что-то менее длинное.
Другой вопрос, зачем больше чем 1920х1080 редактора, если при 80 колонках минимум 6 окон можно открыть. В emacs комфортно работается даже на 800х600 (хотя для нетбучной клавиатуры наверное лучше vim).
Автор в этом плане гениально решил обойтись мунадами, чтобы буквоеды проходили мимо. Расшифрую, что у меня написано. Bind умеет связать результат вычисления с некоторой мнемоникой, которая является именем параметра вложенной функции.
r :: [Integer]
r = do x {- [1,2,3]
y {- [4,5,6]
return (x+y)

{ вместо знака больше, парсер тут крутой.

Как у автора привязать одно значение к «x», другое — к «y», чтобы использовать в третьей функции? Именно используя точки, а не do-нотацию со вложенными лямбдами?

Information

Rating
Does not participate
Location
Словакия
Date of birth
Registered
Activity