Dr.Who
Създадено на 17.08.2020, видяно: 2130 пъти. #5055
Динамичните езици нали са много мощни и всичко става много лесно.
Това не предразполага ли и към по-дълбоко затъване ако нагазим в нещо меко и рядко?
Аз например съм самоук питонджия и в свободното време мажа едни неща. Така като гледам съм правил всички простотии, които не трябва да се правят. Като почнем с мега глупостта if isinstance(obj, ...) - където obj го сетвам на специален клас, за да ми се изпълни условието - тази ситуации никога не се повтори т.е. reusability 0
След това се пробвах с if hasattr да проверявам в базовия клас дали наследника е имплементирал дадена функция, за да я извикам. Това обаче предполага, че наследяваш само, за да добавиш функционалност.
И сега съм на последен етап - предавам функции като параметри наляво, надясно - за сега това е най-мързеливото, което съм открил.
Как даге ги правите нещата extendable в тия динамични езици?
не-случайно хората предпочитат нединамичните изици
Rabin
Последно редактирано на 17.08.2020 от Rabin, видяно: 1841 пъти. #5060
Само да са обадя. Оно са писали на ГРАФИЧЕН език наземната част на софта на тия дека изстреляха ора от ФАЩ.
Чисто графичен език, без текст. Мярнах и некъв панел дето управлява радиотелескоп, по филмче. Па същия език.
Футуристика.
Elim Garak
Създадено на 17.08.2020, видяно: 2109 пъти. #5061
и кой е тоя графичен език ?
gat3way
Създадено на 17.08.2020, видяно: 2104 пъти. #5062
Е па да не си малко дете че да нагазиш в лайна толко лесно.
Тва с isinstance, hasattr и ровенето по мемберите на обекта като стрингове между другото е много забавно в некои случаи. Е не толко отдавна писах една плъгин система дето плъгините трябваше да нямат нищо общо с GUI-а и да имат за всека настройка по един getter, setter и метод дет връща метаданни некакви за настройката която представляват - къв тип е, дали има range-ове и некакви малоумни флагове там не помня вече, голям кеф, импортваш всички питонски файлове от плъгин директорията динамично, ако изглежда като да е плъгин го зареждаш и спрямо тва дали има гетери, сетери (по нейминг конвенция за тея методи) си визуализира едитбоксове, дропбоксове, слайдъри, чекбоксове и темподобни тъпотии, абе не че няма да стане ако ги немаше тея красоти, просто щеше да е доста по-досадно.
Rabin
Последно редактирано на 17.08.2020 от Rabin, видяно: 1841 пъти. #5063
LabVIEW.
И в Лос Аламос няква лаборатория мярнах дека снимали някой друг монитор. Па тоа те език ползват.
Малко съм се занимавал с тава, затуй го разпознавам. Велико е!
Тава си е изпреварило времето с половин век, си ебало века де има лаф.
Лични впечатления.
Stilgar
Създадено на 17.08.2020, видяно: 2094 пъти. #5065
Аз едно време бях на позицията "има неща дето са по-добре динамично други дето са по-добре статично" обаче колкото повече одъртявам толкова повече смятам, че колкото по-статично толкова по-добре. TypeScript беше повратна точка която показа, че JS става по-малко зле като му добавяш типове а не обратно.
Безопасността на езика е най-важното, за да може да си наливаш код без да се притесняваш за типовете. И в статичните езици за повечето концепции е хубаво да се дефинират обекти/енуми, а не да се ползват числа/булеви флагове, стрингове и т.н.
Евлампи
Създадено на 17.08.2020, видяно: 2080 пъти. #5070
Статичното верифициране прави рефакторването и комуникацията между повече маймуни в по-голям проект доста по-безпроблемно.
На така наречените динамични езици най-хубавото им нещо е че са low ceremony, където боднеш там влиза което си има цена - невинен рефактор може да счупи много друг код и това става ясно at runtime.
Хубавото е че всеки език краде неща от всички други и възможности за статична верификация навлизат в динамичните езици а разни шукаритети допреди възможни удобно само с динамичните навлизат в статичните което заедно с type inference където е възможно намалява церемониалността
ДонРеба
Създадено на 17.08.2020, видяно: 2062 пъти. #5074
половината от тия благини можеше и на статичен език да се боднат във вид на темплейти, ама ей на. единствената крачка в тая насока е sizeof, и до там
johnfound
Създадено на 17.08.2020, видяно: 2058 пъти. #5075
LabView-то е само за визуализации на технологични процеси и не мисля, че е много "език". А иначе отзад работи автоматиката написана на нещо съвсем друго.
Stilgar
Създадено на 17.08.2020, видяно: 2038 пъти. #5079
Type inference е feature на статичните езици и няма нищо общо с динамичните така че...
Евлампи
Създадено на 17.08.2020, видяно: 2036 пъти. #5080
Айде сега, factorial е ингилизкото тоест световното
Евлампи
Създадено на 17.08.2020, видяно: 2033 пъти. #5081
Какво че :)
Писал съм че помага да се намали церемониалността в статичните което ги приближава към удобството на динамичните
Stilgar
Създадено на 18.08.2020, видяно: 1993 пъти. #5090
Значи динамичните не само, че нямат предимства ами за капак няма и иновация там освен дето вкарват статично типизиране малко по малко.
ДонРеба
Създадено на 18.08.2020, видяно: 1984 пъти. #5092
половината от тия благини можеше и на статичен език да се боднат във вид на темплейти, ама ей на. единствената крачка в тая насока е sizeof, и до там
Това е в Цъ-то без плюсове, другите имат повече динамикоподобни хубости, нали на Це с плюсове можеш да си смяташ факториал с шаблони :)
то и на С с #define можело дасе смятат факториели, реално зеха да вкарват в С++ някви благини после, но пак са куци и пак кур и пак клизма. примерно най-простото - динамичен масив. искаш да му сложиш функция за сортиране, да може ей така да си напишеш arr.Sort(), да обаче не всеки има дефиниран оператор > , добре карай, за който има бе- да ама не, трябва нещо като hasfunction, имаш ли темплейти, всичко "динамично" може да потрябва и в статичен вид, но го няма.
Rabin
Създадено на 18.08.2020, видяно: 1841 пъти. #5100
LabView-то е само за визуализации на технологични процеси и не мисля, че е много "език". А иначе отзад работи автоматиката написана на нещо съвсем друго.
Поне бегла идея да имаше от туй нещо. У завода имате ли такова? Напълно работещ програмен език си е, дори компилатор има написан на него.