Перейти к публикации
  • Сейчас на странице   Всего пользователей: 0   (0 пользователей, 0 гостей)

Rooster

Программирование, т. 7

  

536 пользователей проголосовало

У вас нет прав на голосование в этом опросе, или на просмотр результатов опроса. Пожалуйста, войдите или зарегистрируйтесь для голосования в опросе.

Рекомендованные сообщения

ну да, тайпскрип придумали потому что делать нехуй было чего  :lol:

высосанные проблемы

Kant понравилось это

Поделиться сообщением


Ссылка на сообщение

ну да, тайпскрип придумали потому что делать нехуй было чего  :lol:

высосанные проблемы

 

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

Поделиться сообщением


Ссылка на сообщение

 

 

 

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

 

 

 

В моем коде ты бы не увидел такой херни и все же дело в языке?

 

ты можешь написать такую херню

другой человек в твоем проекте может написать такую хуйню

 

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

потому что компилятор ему не позволит

 

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

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

 

Когда у ЯП нет цветовой дифференциации штановстрогой типизации, то нет цели! А когда нет цели...


Публикация отключена

Поделиться сообщением


Ссылка на сообщение
(изменено)

А когда нет цели ты свободен, да еще и много денег от $ в коде


Изменено пользователем fessnik

Поделиться сообщением


Ссылка на сообщение

А когда нет цели ты свободен, да еще и много денег от $ в коде

ну в основном-то ходят в желтых штанах


Публикация отключена

Поделиться сообщением


Ссылка на сообщение

я тут стал юзером гита

 

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

Поделиться сообщением


Ссылка на сообщение

 

ну да, тайпскрип придумали потому что делать нехуй было чего  :lol:

высосанные проблемы

 

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

 

как раз таки она именно объективно говном его и делает

неюзабельное - довольно ватная характеристика и можно при желании спорить юзабельные брейнфак или вайтспес или нет

 

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

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

при чём из моего опыта делают его намного более юзабельным

 

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

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

 

пример из питона

 

subprocess.check_output(args, bufsize, executable, stdin, stderr, preexec_fn, close_fds, shell, cwd, env, universal_newlines, startupinfo, creationflags)

расскажешь без открытия доков что подаётся в args? stdin/stderr? close_fds? cwd? env? startupinfo? creationflags?

можно подетективничать что args это строка. но ведь это может быть и список строк в теории, ведь в случае строк тебе надо эскейпить " для аргументов с пробелами, а список это сам сделает

стдин/эрр по идее stream-ы для редиректа. возвращает функция тоже стрим или строку с содержимым stdout, логичнее что строку, иначе бы функция не называлась check_output. env, стартап инфо и флаги это по идее какая-нибудь хешмапа с флаг-значение или просто список флагов для активации. cwd это рабочая папка, но у неё просто долбоёбское название, так бы тип был сразу понятен

 

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

 

а ведь если бы писалось

 

string subprocess.check_output(string args, int bufsize, string executable, StreamReader stdin, StreamWriter stderr, [хуй знает чо это] preexec_fn, bool close_fds, bool shell, string cwd, HashMap<string, string> env, bool universal_newlines, StartUpInfo startupinfo, [тоже не уверен какой тип] creationflags)

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

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

 

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

 

юзабелен ли питоновский подход?

офк юзабелен, при нормальных доках ты всегда можешь всё узнать и правильно подать все нужные аргументы

 

более юзабелен ли подход с обозначением всех типов и их проверкой на этапе компиляции (в случае скриптовых языков на фазе когда проверяется синтаксис)?

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

 

(тут стоит отметить что не смотря на строгие-статические типы С и С++ сюда не отностятся ибо у С 80% типов переменных это int или int* и всё склеено тайпдефами которые их за собой прячут и из которых хуй что поймёшь, а у С++ ебанутая стдлиба склееная темплейтами темплейтов и всё это под соусом попыток сделать безопасным ручное управление памятью)

EbalKopal и Kant понравилось это

Поделиться сообщением


Ссылка на сообщение

 

А когда нет цели ты свободен, да еще и много денег от $ в коде

ну в основном-то ходят в желтых штанах

 

Чет сложна про штаны

 

я тут стал юзером гита

 

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

Один в рутовом

Поделиться сообщением


Ссылка на сообщение

я тут стал юзером гита

 

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

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

Поделиться сообщением


Ссылка на сообщение
(изменено)

юзабелен ли питоновский подход?

 

 

С твоим примером согласен, да это плюс, но довольно мизерный как по мне. Новички даже видя что какой тип принимает функция, все равно может пойти в доку или в  примеры из инета. Ну и еще, вот я начал писать название функции и мне идее подсказывает https://prnt.sc/jl4izy  , а если провалится в эту функцию, то можно увидеть https://prnt.sc/jl4jtc и не нужно никуда в доку лазить

 

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

Например в том же пхп можно так же указывать типы которые принимает функция 

 

 public function test(string $name, array $data, User $user)

Изменено пользователем fessnik

Поделиться сообщением


Ссылка на сообщение
(изменено)

 

я тут стал юзером гита

 

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

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

 

 

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

по сути у меня есть такие директории

 

rootProject/module1/build/...

rootProject/module2/build/...

 

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

 

это всё в одном репозитории


Изменено пользователем DDamager

Поделиться сообщением


Ссылка на сообщение

ну ты же маски любые можешь задавать в файле в том числе по вложенным каталогам */*/build/ типа того

Поделиться сообщением


Ссылка на сообщение

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

 

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

Поделиться сообщением


Ссылка на сообщение

я тебе более того скажу, не забудь этот гитигнор в мастере сделать или какая у вас там ветка центральная, и потом все это дело вмержить во все остальные ветки

Поделиться сообщением


Ссылка на сообщение

Небольшой вопрос по поводу Джавы

Ссылочные объекты хранятся в стеке, но при каким условиях они могут храниться в другом местре? Например в хипе?

Поделиться сообщением


Ссылка на сообщение

шо и Финтяра погромист? ну нихуя себе

JuJeu и SKYnv понравилось это

Поделиться сообщением


Ссылка на сообщение

Небольшой вопрос по поводу Джавы

Ссылочные объекты хранятся в стеке, но при каким условиях они могут храниться в другом местре? Например в хипе?

Как будет угодно Java-машине


Публикация отключена

Поделиться сообщением


Ссылка на сообщение
(изменено)

С твоим примером согласен, да это плюс, но довольно мизерный как по мне.

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

 

Новички даже видя что какой тип принимает функция, все равно может пойти в доку или в примеры из инета.

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

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

 

а если провалится в эту функцию, то можно увидеть https://prnt.sc/jl4jtc и не нужно никуда в доку лазить

это и есть доки если что

 

Ну и еще, вот я начал писать название функции и мне идее подсказывает https://prnt.sc/jl4izy

 

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

 

Например в том же пхп можно так же указывать типы которые принимает функция

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

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

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

 

Небольшой вопрос по поводу Джавы

Ссылочные объекты хранятся в стеке, но при каким условиях они могут храниться в другом местре? Например в хипе?

в джаве ссылочные всегда в куче

в стеке хранятся только примитивы (int, float, char + производные) и по сути ссылки (указатели) на ссылочные (классы т.е.)


Изменено пользователем TheDeadSkin
Fint понравилось это

Поделиться сообщением


Ссылка на сообщение

С твоим примером согласен, да это плюс, но довольно мизерный как по мне. Новички даже видя что какой тип принимает функция, все равно может пойти в доку или в  примеры из инета. Ну и еще, вот я начал писать название функции и мне идее подсказывает https://prnt.sc/jl4izy  , а если провалится в эту функцию, то можно увидеть https://prnt.sc/jl4jtc и не нужно никуда в доку лазить

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

 

жаль только она всё так же ни от чего не застраховывает

 

 

 

 

 

а про типы в пхп, так это грац пхп, он наконец к 8 или какой там версии понял, что надо переделываться в нормальный язык, и начал вводить типизацию

а жс писю сосать будет остаток дней, пока все не уедут на тайпскрипт и о жсе в чистом виде все вообще забудут


Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.
Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью.

Поделиться сообщением


Ссылка на сообщение
(изменено)

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

 

жаль только она всё так же ни от чего не застраховывает

 

ЧТо именно извращение и приведи примеры когда не застраховывает ?

 

 

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

 

 

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

 

 

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

 

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

 

 

но это всё-равно говноязык на костылях которые пытаются его делать более нормальным
 

 

Говно только из за типизации?

 

 

изначально нормаьлный язык
 

 

не знаю нормальных языков, везде доебаться можно)

 

 

например когда я им пользовался в эпоху пхп4

 

Может возьмем java1 и обосрем ее, ведь неважно что там сейчас в java8? 


Изменено пользователем fessnik

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации сообщений.

×
×
  • Создать...