я знаю что было в США с людьми, однакто там «почемуто» несмотря на все невзгоды почти в каждой семье по две машины и дома о которых многие даже сегодня мечтать не могут
Это вы про ту страну, что умудряется потреблять 28,83% мировых ресурсов при 5% населении (на 2018 год)? Дык она одна такая нетипичная.
Сравнивайте с Европой. Там обычные квартиры как правило.
Я уверен, что если бы эти люди НЕ изучали питон, то это никак не улучшило бы их способность освоить C#.
«Приверженцы статической и динамической типизаций никогда не поймут друг друга. И TypeScript им не поможет» habr.com/en/post/431250
Если лень читать статью, то главная мысль оттуда
Я начал учить плюсы и C#, он — JavaScript…
Собравшись уже матерыми разрабами, мы решили, наконец, сделать свой проект — двумерную видеоигру. Так как друг был чистый фронт, а я фулстек, очевидной платформой для нас стал браузер. Раньше я разрабатывал фронт только на TypeScript, и мы подумали, никаких проблем, TS — всего-лишь надмножество JavaScript. Возьмем его и все пройдет гладко. Как бы не так. Когда мы начали обсуждать работу, столкнулись с невероятной бездной непонимания друг друга.
…
Но технология, которая стала для разрабов первой «боевой», определяет их настолько сильно, что два взрослых опытных человека просто не готовы друг друга слушать. За годы изучения разработки наше видение сформировалось слишком по-разному и подходы к решению задач совершенно не работали вместе.
В итоге мы отказались от идеи работать друг с другом. Сразу приходит в голову мысль, что проблема только в нас двоих. Может быть, но я видел такое и у других людей в индустрии.
…
Потому что выбор типизации — путь без возврата. Все компромиссные решения дают только иллюзию компромисса. Ты либо ставишь во главе угла типы, либо нет. Не знаю, как бы все сложилось, начни я учить C# и JavaScript одновременно и параллельно друг другу. Но сейчас я так крепко прибит к своему мышлению, что не вижу и не хочу видеть плюсов динамической типизации. Они есть, но вне поля моего зрения, и все что мне остается — закрывать на них глаза, как на любые чуждые мне проявления мира, с которыми приходится жить. Понимаю, что не прав, но работать мне надо здесь и сейчас, и метаться между полюсами бюджета нет.
Поэтому я не хочу искать компромиссов, а говорю прямо. Если только начинаете изучать разработку, начинайте со статической типизации.
Поэтому к списку достоинств, перечисленных вами, можно добавить:
— примитивный
— с бедной типизацией
На начальном этапе обучения — это все только плюсы. Ничего не отвлекает.
Того, что вы называете «примитивным» и «бедным» — начинающему с нуля хватит разбираться очень и очень надолго.
Ну, например, обобщенные алгоритмы (дженерики) — их в Го нет. Показать ООП — его в Го нет.
Это уже где-то ко второму году обучения имеет смысл. А к тому времени можно уже и еще 3 других языка начинать учить.
Той архитектуры модулей и интерфейсов, что есть в Go начинающему хватит очень надолго для полноценной замены ООП.
Работу с указателями, управление памятью — этого в Го нет, по большому счету
Вопросы освобождения памяти нельзя дать, ага. Трудно будет объяснить «память течет» что такое.
Но распределение памяти, указатели — вполне себе полноценно в Go.
Под ваши критерии замечательно вписывается классика обучения программированию — Паскаль.
Современные не то что дети, а уже двадцатилетние молодые люди никогда не видели терминалов с зелеными буквами.
Ничего не изменилось.
Не программеры и 20 лет назад не понимали что это.
Консоль удобна для работы с простенькими программами на начальном этапе обучения.
Ибо там нет ничего, что отвлекало бы от собственно изучения языка: весь интерфейс — прочитать строку ввода и вывести строку вывода.
Любой вывод в браузер, на формы или произвольное рисование — куда как больше телодвижений нужно совершить. Что начинающего только отвлекает от главного.
что несравнимо с, например, разницей между python 2 и 3?
Рассматривайте это как 2 отдельных языка.
С ним как раз все проще для целей изучения — Гвидо разделил ветки явно. Это и плюс (для обучения, все отличия сразу видно) и минус (переход на 3 затянулся).
Студентов — нельзя. Им потом с ними жить в других языках.
Программистам потом всю жизнь еще много чего изучать.
Ничего страшного не вижу, что ряд концепций они освоят самостоятельно.
В противном случае учить их нужно языку в котором есть вообще всё, типа PL/I. Только вот незадача — там столько всего есть в языке, что даже нет компилятора, который все его фишки реализует. Если компилятор под все концепции сделать не удосужились, то что же говорить про изучение вообще всех-всех-всех концепций.
Но все они хуже, чем старые-добрые дельфовые формочки, просто потому что их нет в коробке и как правило требуют приседаний, прежде чем начать ими пользоваться =)
Библиотеки GUI ничуть не лучше и не хуже по функционалу, чем JS в браузере. Хотя писать, разумеется не так удобно как на формах.
Если рассматривать концепцию с формами — то тогда только C# или Pascal (с Lazarus, та же Delphi, но бесплатная).
Начинать с JS идея плохая. Его доделывают и переделывают не зря.
Его доделывают и переделывают, потому что им пользуются. Если бы Обероном кто-то пользовался — его бы тоже доделывали и переделывали.
Если мы сравним то, как происходит прогресс в других «доделываемых» языках — Java, Go, Python, C++, C#, Pascal, то увидим, что, за исключением монстроидального С++, это именно «доделки», а не «переделки» как с JS, что изначально был разработан с плохим дизайном.
Кстати боевой раскрас не защитит. Это либо перед знакомыми никогда не красится, либо перед зрителями
2 разных образа, да. Этого достаточно для тех, кто тебя плохо знает — чтобы не узнали. Всё равно для камеры нужен другой макияж, это еще со времен «Велкого Немого» известно.
Кто-то рано или поздно расскажит другим и весь круг общения в реале будет знать это.
Если женщина хочет, то боевая рабочая раскраска делает её сильно неузнаваемой. Ну или напротив «боевая» раскраска в обычной жизни делает её непохожей на её же на работе.
Да и не столь критично это.
Мои знакомые веб-камщицы по-началу скрывали.
А потом, когда пара лет работы в вебкам-чатах прошло и освоились — сами и стали рассказывать. И приглашать знакомых работать.
Если анонимы будут писать в личку в соц. сетях и это будет раздражать, то банятся.
Те люди, мнение которых тебе не безразлично, зачастую, и так знают.
От тебя же самого.
Не спорю, что кого-то может смущать деанонимизация. Но вы придаете ей слишком большое значение.
Случайный человек тебя не узнает, если ты не супер-звезда вебкамов.
Ну а если ты супер-звезда, то твой заработок по 0,5 млн. в месяц (это только то, что я лично от знакомых девчонок знаю — да, это правда, видел эти суммы в платежных системах их аккаунтов) и больше — тут тебя вряд ли что остановит.
Некоторые специально размещают материалы со ссылкой на свою вебкамовскую страничку (ну или профессиональный ник один и тот же везде) на порносайтах — ради привлечения большего числа клиентов. Есть те, кто в открытую дают страницу в Контакте, а там через личку продают свои видео и пр. Не всем нужна анонимность.
Пожалуй, деанонимизация существенная вещь для тех, кто попробовал и передумал работать в этой сфере.
Go далеко не такой очевидный, когда дело доходит до горутин и каналов. Возможно их просто не нужно давать, но подозреваю без этого будет сложно, т.к. там весь Go ими пропитан.
Для школы можно и обойтись без них.
Да и не сложные они.
Плюс специфика result, err. В большинстве промышленных языков вместо этого используют исключения, а panic в Go сделан прямо скажем, по остаточному принципу.
panic — это не исключения. Это именно panic. Для отладки, например.
Обучать можно прекрасно и без исключений.
И без них есть чего изучать — в простейших алгоритмах начинающий будет ковыраться долго, ему не до исключений пока на начальном этапе.
Полагаю, что причина в интертности мышления системы образования.
В статье ещё указывается важный момент для начинающих — интерактивность, возможность увидеть результат, т.е. наличие тех же графических примитивов (да хоть те же окошки в дельфи или egavga.bgi) или работы с html (сейчас уже не катит, потому что всю интерактивность делают на js) в стандартной библиотеке, а в Go этого нет.
Если для совсем мелких — то есть языки типа Черепашки или Скрэтча со встроенными средствами визуализации.
Инструменты для написания визуального интерфейса для Go есть. Они не лучше и не хуже, чем для Python, Java, C/C++ и пр.
Выделяется здесь разве что C#
Только вот большинство задач начальном этапе — это вообще голая консоль.
Если изучать графику — то ты уже не язык учишь, а конкретную библиотеку. Например, SDL.
но в котором можно писать и для iOS, и для Android, и для любых Java-driven x86-систем, и для Atmel-микроконтроллеров (Arduino)? Всё, кроме «яблока» — бесплатно. И на 80% кроссплатформенно.
Это не плюс для первого языка программирования. Этот параметр — вообще параллельный обсуждаемой задаче.
Можно тот же пример на Pascal?
Один программист.
Второй — не программист. Но продажник.
И один без другого никуда.
Это вы про ту страну, что умудряется потреблять 28,83% мировых ресурсов при 5% населении (на 2018 год)? Дык она одна такая нетипичная.
Сравнивайте с Европой. Там обычные квартиры как правило.
Все давно уже не так, как было 100 лет назад:
Рожают мало. Многие не рожают вообще никогда.
Или рожают когда карьера сложилась. Или уходят в декрет перед родами и быстро возвращаются после родов на работу.
Ну ок. У мужчин преимущество по времени есть. Несколько месяцев всего-то.
«Приверженцы статической и динамической типизаций никогда не поймут друг друга. И TypeScript им не поможет»
habr.com/en/post/431250
Собравшись уже матерыми разрабами, мы решили, наконец, сделать свой проект — двумерную видеоигру. Так как друг был чистый фронт, а я фулстек, очевидной платформой для нас стал браузер. Раньше я разрабатывал фронт только на TypeScript, и мы подумали, никаких проблем, TS — всего-лишь надмножество JavaScript. Возьмем его и все пройдет гладко. Как бы не так. Когда мы начали обсуждать работу, столкнулись с невероятной бездной непонимания друг друга.
…
Но технология, которая стала для разрабов первой «боевой», определяет их настолько сильно, что два взрослых опытных человека просто не готовы друг друга слушать. За годы изучения разработки наше видение сформировалось слишком по-разному и подходы к решению задач совершенно не работали вместе.
В итоге мы отказались от идеи работать друг с другом. Сразу приходит в голову мысль, что проблема только в нас двоих. Может быть, но я видел такое и у других людей в индустрии.
…
Потому что выбор типизации — путь без возврата. Все компромиссные решения дают только иллюзию компромисса. Ты либо ставишь во главе угла типы, либо нет. Не знаю, как бы все сложилось, начни я учить C# и JavaScript одновременно и параллельно друг другу. Но сейчас я так крепко прибит к своему мышлению, что не вижу и не хочу видеть плюсов динамической типизации. Они есть, но вне поля моего зрения, и все что мне остается — закрывать на них глаза, как на любые чуждые мне проявления мира, с которыми приходится жить. Понимаю, что не прав, но работать мне надо здесь и сейчас, и метаться между полюсами бюджета нет.
Поэтому я не хочу искать компромиссов, а говорю прямо. Если только начинаете изучать разработку, начинайте со статической типизации.
Каких обязанностей?
В западных странах победившего и воинственного феминизма?
Разве?
А где нужно в явном виде? Приведите пример, а то непонятно что вы имеете ввиду.
Или вы его?
Тут выше хорошо подсказывают: разные квалификации, разные специализации. Друг без друга не сможете.
На начальном этапе обучения — это все только плюсы. Ничего не отвлекает.
Того, что вы называете «примитивным» и «бедным» — начинающему с нуля хватит разбираться очень и очень надолго.
Это уже где-то ко второму году обучения имеет смысл. А к тому времени можно уже и еще 3 других языка начинать учить.
Той архитектуры модулей и интерфейсов, что есть в Go начинающему хватит очень надолго для полноценной замены ООП.
Вопросы освобождения памяти нельзя дать, ага. Трудно будет объяснить «память течет» что такое.
Но распределение памяти, указатели — вполне себе полноценно в Go.
Под ваши критерии замечательно вписывается классика обучения программированию — Паскаль.
Ничего не изменилось.
Не программеры и 20 лет назад не понимали что это.
Консоль удобна для работы с простенькими программами на начальном этапе обучения.
Ибо там нет ничего, что отвлекало бы от собственно изучения языка: весь интерфейс — прочитать строку ввода и вывести строку вывода.
Любой вывод в браузер, на формы или произвольное рисование — куда как больше телодвижений нужно совершить. Что начинающего только отвлекает от главного.
Идея в том, чтобы ухудшить так, чтобы было малозаметно.
Идея «психо-» части в том, что большинство людей не обращают внимание на ухудшения.
Рассматривайте это как 2 отдельных языка.
С ним как раз все проще для целей изучения — Гвидо разделил ветки явно. Это и плюс (для обучения, все отличия сразу видно) и минус (переход на 3 затянулся).
Программистам потом всю жизнь еще много чего изучать.
Ничего страшного не вижу, что ряд концепций они освоят самостоятельно.
В противном случае учить их нужно языку в котором есть вообще всё, типа PL/I. Только вот незадача — там столько всего есть в языке, что даже нет компилятора, который все его фишки реализует. Если компилятор под все концепции сделать не удосужились, то что же говорить про изучение вообще всех-всех-всех концепций.
Библиотеки GUI ничуть не лучше и не хуже по функционалу, чем JS в браузере. Хотя писать, разумеется не так удобно как на формах.
Если рассматривать концепцию с формами — то тогда только C# или Pascal (с Lazarus, та же Delphi, но бесплатная).
Если мы сравним то, как происходит прогресс в других «доделываемых» языках — Java, Go, Python, C++, C#, Pascal, то увидим, что, за исключением монстроидального С++, это именно «доделки», а не «переделки» как с JS, что изначально был разработан с плохим дизайном.
2 разных образа, да. Этого достаточно для тех, кто тебя плохо знает — чтобы не узнали. Всё равно для камеры нужен другой макияж, это еще со времен «Велкого Немого» известно.
Если женщина хочет, то боевая рабочая раскраска делает её сильно неузнаваемой. Ну или напротив «боевая» раскраска в обычной жизни делает её непохожей на её же на работе.
Да и не столь критично это.
Мои знакомые веб-камщицы по-началу скрывали.
А потом, когда пара лет работы в вебкам-чатах прошло и освоились — сами и стали рассказывать. И приглашать знакомых работать.
Если анонимы будут писать в личку в соц. сетях и это будет раздражать, то банятся.
Те люди, мнение которых тебе не безразлично, зачастую, и так знают.
От тебя же самого.
Не спорю, что кого-то может смущать деанонимизация. Но вы придаете ей слишком большое значение.
Случайный человек тебя не узнает, если ты не супер-звезда вебкамов.
Ну а если ты супер-звезда, то твой заработок по 0,5 млн. в месяц (это только то, что я лично от знакомых девчонок знаю — да, это правда, видел эти суммы в платежных системах их аккаунтов) и больше — тут тебя вряд ли что остановит.
Некоторые специально размещают материалы со ссылкой на свою вебкамовскую страничку (ну или профессиональный ник один и тот же везде) на порносайтах — ради привлечения большего числа клиентов. Есть те, кто в открытую дают страницу в Контакте, а там через личку продают свои видео и пр. Не всем нужна анонимность.
Пожалуй, деанонимизация существенная вещь для тех, кто попробовал и передумал работать в этой сфере.
А куда они потом деваются?
В математической науке девушек никак не больше.
Они не редкость. Но их не больше.
Для школы можно и обойтись без них.
Да и не сложные они.
panic — это не исключения. Это именно panic. Для отладки, например.
Обучать можно прекрасно и без исключений.
И без них есть чего изучать — в простейших алгоритмах начинающий будет ковыраться долго, ему не до исключений пока на начальном этапе.
Полагаю, что причина в интертности мышления системы образования.
Если для совсем мелких — то есть языки типа Черепашки или Скрэтча со встроенными средствами визуализации.
Инструменты для написания визуального интерфейса для Go есть. Они не лучше и не хуже, чем для Python, Java, C/C++ и пр.
Выделяется здесь разве что C#
Только вот большинство задач начальном этапе — это вообще голая консоль.
Если изучать графику — то ты уже не язык учишь, а конкретную библиотеку. Например, SDL.
Кто первый встал — того и тапки.
Это не плюс для первого языка программирования. Этот параметр — вообще параллельный обсуждаемой задаче.