170 похожих чатов

Голенг хорошо подходит как первый язык?

72 ответов

59 просмотров

да

K4TANC3- Автор вопроса

Нет

K4TANC3
почему

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

Rostislav Teryaev
жесть, а еще goto обрезанный

вот это прям вообще калит!

Смотря что хотите писать. Первым языком лучше всего выбрать тот на котором то что вы хотите сделать получится быстрее и проще всего.

Вадим Герасименко
очень плохой дизайн - нет сумм-типов, обработки ис...

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

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

Яб си шарп посоветовал

Yura Sargsyan
Яб си шарп посоветовал

Не, гошечка прям идеально для первого

K4TANC3- Автор вопроса
Anton Kucherov
Смотря что хотите писать. Первым языком лучше всег...

тогда я буду каждый раз менять язык и ничего не выучу

K4TANC3
тогда я буду каждый раз менять язык и ничего не вы...

На itbeard, вроде было интервью с челом, который 14 языков знает😄

K4TANC3
тогда я буду каждый раз менять язык и ничего не вы...

с опытом много проще учить новые языки

Первый язык должен быть С. Не ++, просто С. Познаете С - познаете все остальные

Женя
Может испугать)

Боятся С - крудошлепером не стать. (С) джейсон стетхем

K4TANC3- Автор вопроса
Dmitry Soloma
Первый язык должен быть С. Не ++, просто С. Познае...

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

Вадим Герасименко
очень плохой дизайн - нет сумм-типов, обработки ис...

😐 а где есть простой подход для итерирования по полям структуры? Нахрена вообще по структуре итерироваться...

Jack Bolt
😐 а где есть простой подход для итерирования по по...

в языках , где "структуры" суть словарь )

K4TANC3
с си я прострелю колени и мне будет уже все равно

для первого рабочего языка - jvm*, javascript, python если вообще нет опыта программирования - python (много книжек, курсов, учебников по теории)

Jack Bolt
😐 а где есть простой подход для итерирования по по...

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

Iva
Свифт

Полностью согласен

K4TANC3- Автор вопроса
K4TANC3
значит все таки лучше джаву?

Учите питон первым, потом так кайфанете от перехода на язык со строгой типизацией.)

K4TANC3
значит все таки лучше джаву?

Скажите, что вы писать собираетесь? Что-то выделили себе?

Iva
Учите питон первым, потом так кайфанете от переход...

Учить питон первым, чтобы потом писать питонокод на типизированных языках? 😁

K4TANC3
ну бэкэнд

Т.е. пока не определились. Скорость питона легко компенсируется усилением железа.

K4TANC3- Автор вопроса
Iva
Т.е. пока не определились. Скорость питона легко к...

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

K4TANC3
значит все таки лучше джаву?

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

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

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

Как раз таки на питоне не удобно и выглядит отвратительно

Вадим Герасименко
очень плохой дизайн - нет сумм-типов, обработки ис...

я вот с какой стороны зайду - а у какого языка, на ваш взгляд, дизайн хороший? и, следующим ходом, по каким критериям гошный плохой, а тот - хороший?

Вадим Герасименко
очень плохой дизайн - нет сумм-типов, обработки ис...

А почему вы в сторону плохого дизайна относите отсутствие поддержки плохих практик? Вы бы ещё про множественное наследование написали, ну серьёзно

Daniel Podolsky
я вот с какой стороны зайду - а у какого языка, на...

Возможность разыменовать нулевой указатель/ссылку в сейвовом подмножестве языка = плохой дизайн

Вадим Герасименко
очень плохой дизайн - нет сумм-типов, обработки ис...

именно поэтому, Го - прекрасный первый, да и последний язык:)

Владимир Гришин
именно поэтому, Го - прекрасный первый, да и после...

Кстати про выбор его первым языком, вам не кажется что кривая обучения в начале изучения конкурентности в го устремляется к небу? Это плохо

о! а вот скажите, если в коде написано разыменование, а указатель оказался нулевой - что надо делать в языке с хорошим дизайном?

это типа две конструкции, которые надо выучить - это устремление к небу?

Daniel Podolsky
о! а вот скажите, если в коде написано разыменова...

Разрешить его разыменовывать в ансейф блоке, перекладывая ответственность явно на вызывающего

Владимир Гришин
это типа две конструкции, которые надо выучить - э...

Давайте я дам вам 2 слова - zero knowledge, выучите их. Это всего лишь 2 слова, есть конструкции которые занимают 10 слов, а эта занимает всего 2.

Pro Logic 🍓
Давайте я дам вам 2 слова - zero knowledge, выучит...

Количество конструкций ничего не говорит про сложность.

Владимир Гришин
это типа две конструкции, которые надо выучить - э...

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

Maxim Biryukov
Разрешить его разыменовывать в ансейф блоке, перек...

а в сейф блоке что делать? мы же не знаем на этапе компиляции, что там, в указателе

Pro Logic 🍓
Джуна?

да любой продуктовой разработки

Daniel Podolsky
а в сейф блоке что делать? мы же не знаем на этапе...

Запретить обращаться туда напрямую, сделать гард на Maybe/Option и явно обработать оба кейса, когда указатель пустой и нет, не давая его разыменовывать

Maxim Biryukov
Запретить обращаться туда напрямую, сделать гард н...

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

Daniel Podolsky
и вот мы явно отрабатываем пустой указатель - что ...

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

видимо разница лишь в том, что компилятор не скомпилирует в случае если вы не проверили явно прежде чем dereference'ить

Roman Sharkov
видимо разница лишь в том, что компилятор не скомп...

Ага, а потом добавить в прелюд forceDeref, который делает тоже самое (как fromMaybe в хаскеле)

Евгений Омельченко
Ага, а потом добавить в прелюд forceDeref, который...

with p != nil { a += *p } думаю товарищ говорит по что-то подобное

Евгений Омельченко
go func() { p = nil }() if *p != nil{ fmt.Pri...

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

Roman Sharkov
и на этом этапе начинает переизобретении Rust и ем...

Ну я бы посмотрел на раст с gc и горутинами, на самом деле

Pro Logic 🍓
Кстати про выбор его первым языком, вам не кажется...

сейчас обучал джаве соседа по квартире и понял, что гошка в одном быстрее пойдет, в другом тяжелее кстати, джава — фу

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
1
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Карта сайта