Jump to content
  • Sign Up
  • Recently Browsing   Total Users: 1   (1 member, 0 Guests)

Rooster

Программирование[11]

var  

151 members have voted

You do not have permission to vote in this poll, or see the poll results. Please sign in or register to vote in this poll.

Recommended Posts

Posted (edited)

TS это препроцессор, оно на этапе сборки в js упадёт если с типами хуйня. 

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


Edited by Rintz

Share this post


Link to post
 madvlaydin написал 20 минут назад:
13uRn1nG написал 1 час назад:

TypeScript выглядит как цирк уродцев

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

Ну да, это чисто фронтенд транслятор что бы джаваскриптезёры писали более осмысленный код который не мучительно больно ревьювить/дебажить, мне на первой работе довелось случайно столкнуться с js и те места у фронтеда приложухи которые не были накаляканы на Реакте + ТС читать  и дебажить было просто до омерзения неприятно, хотелось хуй забить и ниче не делать.

Share this post


Link to post
13uRn1nG написал 1 час назад:
Rooster написал 12 часов назад:
ArzanisAncient написал 12 часов назад:

Супержесткая типизация как в хаскеле топ. Джаваскриптеры и питухонеры сосут.

 

Не знаю как там в Хаскеле но у типизации js+flow всякие джавы и шарпы сосут плотнейше

Тайпскрипт говняный канеш но всяко не хуже упомянутых

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

Очень сомнительно что в TS типы поприятнее чем в задизайненной быть статически типизированной старой жабе

мне не нравится типизация в плюсах из-за того, как легко ее ломает implicit conversion а иногда не ломает, ибо не написано или спецом запрещено

с одной стороны - ну так у вас вся власть же, с другой стороны рот ебал - пред строке вот так можно было, а тут уже нельзя, потому что тут писали с умом АПИ а там нет, в итоге гадаешь как можно будет.
"cannot convert from initializer list to struct"

Share this post


Link to post
Posted (edited)
madvlaydin написал 2 часа назад:

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

это можно сказать про любой язык

отлаживать и дебажить можно по сорцам ТС (не проверял, но на 99% уверен что сделали давно такой тулинг)

ты даже реакт можешь не по js дебажить а по сорцам реакта, и стейт выводить в окошке а не в кишках жс.

это все вопрос тулинга

собственно отладка жс это тоже вопрос тулинга - не было бы тулинга для жс, отлаживали бы то что jit высрет

 

если тебе это лет 5 назад говорили - то уже все поменялось

если недавно то вопрос к веберу


Edited by Just.Doit

 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Share this post


Link to post
Posted (edited)
CriErr написал 1 час назад:
13uRn1nG написал 3 часа назад:
Rooster написал 14 часов назад:
ArzanisAncient написал 14 часов назад:

Супержесткая типизация как в хаскеле топ. Джаваскриптеры и питухонеры сосут.

 

Не знаю как там в Хаскеле но у типизации js+flow всякие джавы и шарпы сосут плотнейше

Тайпскрипт говняный канеш но всяко не хуже упомянутых

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

Очень сомнительно что в TS типы поприятнее чем в задизайненной быть статически типизированной старой жабе

мне не нравится типизация в плюсах из-за того, как легко ее ломает implicit conversion а иногда не ломает, ибо не написано или спецом запрещено

с одной стороны - ну так у вас вся власть же, с другой стороны рот ебал - пред строке вот так можно было, а тут уже нельзя, потому что тут писали с умом АПИ а там нет, в итоге гадаешь как можно будет.
"cannot convert from initializer list to struct"

Хз,  честно уже воспринимается как что то само собой разумеющееся, давно уже привык и не обращаю на это внимания как то, не сказал бы что это что то ломает в рамках логики языка, просто заставляет держать в голове микроправила когда создаешь свой тип/оверлоадинг сет. Тем более best practices по этому поводу уже давно описаны.

В примере сломанная агрегатная инициализация у структуры что ли?:trollface:


Edited by 13uRn1nG

Share this post


Link to post
13uRn1nG написал Только что:
CriErr написал 1 час назад:
13uRn1nG написал 3 часа назад:
Rooster написал 14 часов назад:
ArzanisAncient написал 14 часов назад:

Супержесткая типизация как в хаскеле топ. Джаваскриптеры и питухонеры сосут.

 

Не знаю как там в Хаскеле но у типизации js+flow всякие джавы и шарпы сосут плотнейше

Тайпскрипт говняный канеш но всяко не хуже упомянутых

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

Очень сомнительно что в TS типы поприятнее чем в задизайненной быть статически типизированной старой жабе

мне не нравится типизация в плюсах из-за того, как легко ее ломает implicit conversion а иногда не ломает, ибо не написано или спецом запрещено

с одной стороны - ну так у вас вся власть же, с другой стороны рот ебал - пред строке вот так можно было, а тут уже нельзя, потому что тут писали с умом АПИ а там нет, в итоге гадаешь как можно будет.
"cannot convert from initializer list to struct"

Хз,  честно уже воспринимается как что то само собой разумеющееся, давно уже привык и не обращаю на это внимания как то, не сказал что это что то ломает, в рамках логики языка, просто заставляет держать в голове микроправила когда создаешь свой тип/оверлоадинг сет. Тем более best practices по этому поводу уже давно описаны.

В примере сломанная агрегатная инициализация у структуры что ли?:trollface:

даже если не сломана, то она разная у разных вещей

struct location {
int x;
int y;
int z;}

ok:
void do(location A);
do({1,2,3});

not ok:
void do(tuple<int,int,int> A};
do({1,2,3});
should be:
void do(tuple<int,int,int> A};
do(make_tuple({1,2,3}));

 

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

Share this post


Link to post
CriErr написал 31 минуту назад:

даже если не сломана, то она разная у разных вещей

https://godbolt.org/z/xWzahcG54

?

 

То, про что ты написал, вообще то с конверсией не связано.

 

Есть агрегатная инициализация, есть директ инициализация, есть инициализация через инит лист.

 

Очевидно, что ты не можешь использовать агрегатную инициализацию если у класса конструктор не дефолт или есть приватные поля. Значит у класса есть какие-то правила для инициализации и/или поддерживания его корректного состояния. Тоесть это именнор класс, а не структура.

 

А для того что бы была инициализация через init list кто-то должен написать такой конструктор, что опять же верно. Ты ведь в петоне не будешь спрашивать почему у тебя класс из массива не конструируется, верно? Откуда компилятору знать как использовать например {1, 2}, для инициализации вектора? У него там условно два поля внутри, size, *data_pointer. Ему че сделать, выставить size в 1 и дата поинтер в 2?

 

 

13uRn1nG likes this

ward написал 04.01.2022 в 02:54:

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

mazt3r написал 20.09.2019 в 11:27:

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

 

Share this post


Link to post
Posted (edited)
CriErr написал 50 минут назад:
13uRn1nG написал 56 минут назад:
CriErr написал 1 час назад:
13uRn1nG написал 4 часа назад:
Rooster написал 15 часов назад:
ArzanisAncient написал 15 часов назад:

Супержесткая типизация как в хаскеле топ. Джаваскриптеры и питухонеры сосут.

 

Не знаю как там в Хаскеле но у типизации js+flow всякие джавы и шарпы сосут плотнейше

Тайпскрипт говняный канеш но всяко не хуже упомянутых

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

Очень сомнительно что в TS типы поприятнее чем в задизайненной быть статически типизированной старой жабе

мне не нравится типизация в плюсах из-за того, как легко ее ломает implicit conversion а иногда не ломает, ибо не написано или спецом запрещено

с одной стороны - ну так у вас вся власть же, с другой стороны рот ебал - пред строке вот так можно было, а тут уже нельзя, потому что тут писали с умом АПИ а там нет, в итоге гадаешь как можно будет.
"cannot convert from initializer list to struct"

Хз,  честно уже воспринимается как что то само собой разумеющееся, давно уже привык и не обращаю на это внимания как то, не сказал что это что то ломает, в рамках логики языка, просто заставляет держать в голове микроправила когда создаешь свой тип/оверлоадинг сет. Тем более best practices по этому поводу уже давно описаны.

В примере сломанная агрегатная инициализация у структуры что ли?:trollface:

даже если не сломана, то она разная у разных вещей


struct location {
int x;
int y;
int z;}

ok:
void do(location A);
do({1,2,3});

not ok:
void do(tuple<int,int,int> A};
do({1,2,3});
should be:
void do(tuple<int,int,int> A};
do(make_tuple({1,2,3}));

 

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

https://godbolt.org/z/x3dd3aKv8

А что тут не ок? :hmm:Собралось без проблем на годболте и выдало ambiguous. Ну кроме последней строчки, он там пытается проинициализировать не параметризованный tuple интами


Edited by 13uRn1nG

Share this post


Link to post
madvlaydin написал 6 часов назад:
13uRn1nG написал 6 часов назад:

TypeScript выглядит как цирк уродцев

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

 

Вы такие профессионалы тут я в ахуе Достаточно один раз открыть было devtools в Хроме

 

TypeScript отлаживается и по сорсам в .ts и по транспилированным .js как тебе удобнее

Snitch_91 likes this

towBCf6.pngVk7gxeP.png

image.png.0e8329f2b07e208ae8ef4e3f6878d126.png

 

Share this post


Link to post
13uRn1nG написал 2 часа назад:
CriErr написал 3 часа назад:
13uRn1nG написал 3 часа назад:
CriErr написал 4 часа назад:
13uRn1nG написал 6 часов назад:
Rooster написал 17 часов назад:
ArzanisAncient написал 17 часов назад:

Супержесткая типизация как в хаскеле топ. Джаваскриптеры и питухонеры сосут.

 

Не знаю как там в Хаскеле но у типизации js+flow всякие джавы и шарпы сосут плотнейше

Тайпскрипт говняный канеш но всяко не хуже упомянутых

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

Очень сомнительно что в TS типы поприятнее чем в задизайненной быть статически типизированной старой жабе

мне не нравится типизация в плюсах из-за того, как легко ее ломает implicit conversion а иногда не ломает, ибо не написано или спецом запрещено

с одной стороны - ну так у вас вся власть же, с другой стороны рот ебал - пред строке вот так можно было, а тут уже нельзя, потому что тут писали с умом АПИ а там нет, в итоге гадаешь как можно будет.
"cannot convert from initializer list to struct"

Хз,  честно уже воспринимается как что то само собой разумеющееся, давно уже привык и не обращаю на это внимания как то, не сказал что это что то ломает, в рамках логики языка, просто заставляет держать в голове микроправила когда создаешь свой тип/оверлоадинг сет. Тем более best practices по этому поводу уже давно описаны.

В примере сломанная агрегатная инициализация у структуры что ли?:trollface:

даже если не сломана, то она разная у разных вещей



struct location {
int x;
int y;
int z;}

ok:
void do(location A);
do({1,2,3});

not ok:
void do(tuple<int,int,int> A};
do({1,2,3});
should be:
void do(tuple<int,int,int> A};
do(make_tuple({1,2,3}));

 

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

https://godbolt.org/z/x3dd3aKv8

А что тут не ок? :hmm:Собралось без проблем на годболте и выдало ambiguous. Ну кроме последней строчки, он там пытается проинициализировать не параметризованный tuple интами

 

потому что ты в студ пишешь, а не анрил енджин 4 :ponimau:

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

GoldRobot написал 2 часа назад:
CriErr написал 3 часа назад:

даже если не сломана, то она разная у разных вещей

https://godbolt.org/z/xWzahcG54

?

 

То, про что ты написал, вообще то с конверсией не связано.

 

Есть агрегатная инициализация, есть директ инициализация, есть инициализация через инит лист.

 

Очевидно, что ты не можешь использовать агрегатную инициализацию если у класса конструктор не дефолт или есть приватные поля. Значит у класса есть какие-то правила для инициализации и/или поддерживания его корректного состояния. Тоесть это именнор класс, а не структура.

 

А для того что бы была инициализация через init list кто-то должен написать такой конструктор, что опять же верно. Ты ведь в петоне не будешь спрашивать почему у тебя класс из массива не конструируется, верно? Откуда компилятору знать как использовать например {1, 2}, для инициализации вектора? У него там условно два поля внутри, size, *data_pointer. Ему че сделать, выставить size в 1 и дата поинтер в 2?

 

 

очевидно, кто-то должен был сделать, но он не сделал, вот и сосу хуй.

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

Share this post


Link to post

Мой ликбез к тому, что конкретно тобой описываемый кейс это не проблема языка, а твоя. Ты взял кривую библиотеку.

Язык тут принципиально ничего сделать не может, увы.

 

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


ward написал 04.01.2022 в 02:54:

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

mazt3r написал 20.09.2019 в 11:27:

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

 

Share this post


Link to post

в какой момент проблема у меня, становится проблемой языка?
ибо вот эта шутка, "в с++ есть 5 способов сделать что угодно, если вы нашли задачу которую можно решить только в три, сообщите комитету, они добавят недостающие два"
это пиздец.

Share this post


Link to post

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

Плохое является плохим только тогда, когда есть решение. Это сравнительная характеристика.

 

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


ward написал 04.01.2022 в 02:54:

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

mazt3r написал 20.09.2019 в 11:27:

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

 

Share this post


Link to post

Я бы резал легаси, нахуй не нужны 20 способов инициализации класса, причем вроде в последнем толи пред последним стандартом добавили еще 1.

 

В плюсах слишком много легаси синтаксиса, как яркий пример откуда это все тянется - саппорт С нахуй не нужен в 21м веке, во первых поддержка легаси это иллюзия и например поддержка С не полна и кривая, во вторых никто блядь код написанный в прошлом веке не переносит на стандарт 2020 просто поменяв настройки в компиляторе, это хуйня которую Бьёрн и остальные мамонты выдумали и продолжают повторять каждый раз когда их спрашивают когда будем депрекейт ту или иную фичу.

Share this post


Link to post

Я согласен насчет легаси.

Но что конкретно ты хочешь отрезать? Что ты хочешь вырезать в вышеописанном примере?


ward написал 04.01.2022 в 02:54:

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

mazt3r написал 20.09.2019 в 11:27:

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

 

Share this post


Link to post
GoldRobot написал 4 часа назад:

Я согласен насчет легаси.

Но что конкретно ты хочешь отрезать? Что ты хочешь вырезать в вышеописанном примере?

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

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

Share this post


Link to post
madvlaydin said 4 hours ago:
GoldRobot said 4 hours ago:

ты хочешь вырезать в в

русских

 

Извинись


ph0yAPF.png

Share this post


Link to post
CriErr написал 21 минуту назад:
GoldRobot написал 5 часов назад:

Я согласен насчет легаси.

Но что конкретно ты хочешь отрезать? Что ты хочешь вырезать в вышеописанном примере?

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

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

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

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


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

Share this post


Link to post
Posted (edited)
CriErr написал 32 минуты назад:
GoldRobot написал 5 часов назад:

Я согласен насчет легаси.

Но что конкретно ты хочешь отрезать? Что ты хочешь вырезать в вышеописанном примере?

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

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

У класса одно "апи", но множество конструкторов.

Это есть в любом языке, где есть классы, в том или ином виде. В С++ это делается в явном виде, потому что это статически типизированный язык. И уж лучше так, как в С++, чем сидеть чекать количество аргументов, потом их типы, а потом пытаться отгатать, как же пользователь хотел инициализировать твой класс, как это делается в питоне. И уж там ты точно не поймешь нихуя, потому что доки не будет, а для того что бы понять какие аргументы нужно отдать, тебе придется прочитать весь код __init

 

А make_tuple не относится к классу вообще. Это вспомогательная функция, которая сделана для работы с шаблонами в первую очередь. К инициализации она относится вообще никак.

И написал ты ее не корректно. make_tuple(1, 2, 3) нужно было. make_tuple({1, 2, 3}), я вообще незнаю что ты получил. Оно вообще скомпилится? Понаделают ебанутых библиотек...

И написать ты мог как обычно do(tuple<int, int, int>(1, 2, 3));

 

 

 

Если хочешь доебать, доебись до того что A a{1, 2} сфалбечится до A a(1, 2) если класс не тривиальный, и если у него нету конструктора из инит листа.

Меня эта хуйня бесит. Нахуя это было сделано я не понимаю.

 

 


Edited by GoldRobot

ward написал 04.01.2022 в 02:54:

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

mazt3r написал 20.09.2019 в 11:27:

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

 

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...