LINUX.ORG.RU

Typescript, как ведущая технология.

 , ,


0

3

Встал вопрос выбора технологий под новый проект.

Накидайте плюсов typescript, господа, владеющие данным ЯП.
Сам пока насмотрелся дивных косяков и неприятных моментов:

1 Не нужен без IDE. В редакторых без обвеса бесмыссленно на нём писать. Предлагаемый VSCode тырит всё, к чему может дотянуться (прописано в лицензии и в требованиях к дополнениям)
2 Прямо из документации: Null и его весёлые проблемы, простой тип Boolean, точно Вам говорю! Ссылки на «нормально». Да весь раздел по ссылке весёлый.
3 Это надо разбираться и уметь, а те, кто клепает на React/Vue, да и просто большинство - не знают, как вообще работает JS или ИХ выбранный framework, куда им до выведения типов, сложно, короче.
4 Всегда стремает MS. Сколько я с ней не работал, везде отношение " пользователь - не человек".

А так, если на этот список закрыть глаза, очень здравая идея.



Последнее исправление: Neuromagus (всего исправлений: 3)

Ответ на: комментарий от Neuromagus

И чего ты боишься?

ну например оператора связи, сервисов типа vk и яндекса, госуслуг (которыми я, к сожалению, пользуюсь). недавно сливали базы деливериклаба, туда утёк адрес моего предыдущего места жительства вместе с телефоном.

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

el-d ★★
()
Ответ на: комментарий от alex0x08

что типично для фанатика

Для фанатика типично, например, аргументы к толпе, личности и авторитету.

а это уникальный язык, построенный на функторах и замыканиях и при этом очень простой и читаемый

Но там же «всё есть строка». Кто будет с ним связываться с такими раскладами. Тот же код на в8 всего-то в ~3.5 раза тормознее нативного в идеальном случае.

учить его просто так обычным программистам не интересно

Обычному человеку вообще ничего не интересно учить отличное от default. Это не значит, что надо в жопе, никуда не двигаться и ничего не пробовать.

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

Те, кто пишут дефолт пишут так как *принято*. Сделай принято по другому и все так же будут писать. А если ты еще для рядовых кодеров минимизируешь при этом число движений извилинами, то побегут вприпрыжку. Просто надо вложиться на старте немного для этого, а это риск, а зачем это надо и т.д.

crutch_master ★★★★★
()
Ответ на: комментарий от alex0x08

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

crutch_master ★★★★★
()
Ответ на: комментарий от crutch_master

Просто надо вложиться на старте немного для этого, а это риск, а зачем это надо и т.д

Ноль вопросов, сам готов инвестировать?

Несчастные 100к евро и я тебе c радостью сделаю проект на хаскелле (или любом другом илитном говне от которого ты фанатеешь), еще за 50к подтащу знакомых SMM, которые засрут весь рунет идеей что «ООП - говно».

Там и баннеры будут и рекламные интеграции у блогеров, только плати.

Ну что реквизиты на оплату выслать?

alex0x08 ★★★
()
Ответ на: комментарий от Neuromagus

Да не напишешь ты ;)

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

Иначе бы уже писал на F#

А кто тебе сказал что я на нем не писал?

И вообще, если вопрос именно в функциональном языке, то у меня есть открытый проект на Scala, которы я пилю уже лет так 10.

alex0x08 ★★★
()
Ответ на: комментарий от alex0x08

Чё, круто. Парсеры на Haskell очень удобно писать. Он для этого «из коробки», что-ли.

Просто мой опыт показывает, что после ООП ты везде видишь гвозди. Мне было нужно довольно много времени, чтобы повернуть мозги. И то, теперь у меня гибрид. Было бы интересно учиться не с С, а с LISP. Ну, этого уже не вернуть.

Neuromagus
() автор топика
Ответ на: комментарий от Neuromagus

Просто мой опыт показывает, что после ООП ты везде видишь гвозди.

Рад за твой опыт, но говори пожалуйста за себя.

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

alex0x08 ★★★
()
Ответ на: комментарий от crutch_master

Если оопэ - это говно, то это говно

Чини методичку, эта устарела уже. После того, как все накушались говланга, ООП уже не кажется такой плохой идеей. Ну и тем более странно читать нахрюки на ООП от фаната динамической ОО-дрисни.

bread
()
Ответ на: комментарий от crutch_master

Я тебя возможно удивлю, но 100к это только входной билет. А нормальная разработка как стоила миллионы $ в 70х так и стоит до сих пор. Несмотря на все эти новые языки, бойлерплейт и автоматизацию.

alex0x08 ★★★
()
Ответ на: комментарий от crutch_master

Библиотека это лишь маленький кирпичик в проекте, даже если она технически сложная.

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

alex0x08 ★★★
()

Встал вопрос выбора технологий под новый проект.

А что надо в продукте сделать? Это самый важный вопрос.

Накидайте плюсов typescript, господа, владеющие данным ЯП.

Их нет. В реальной разработке TypeScript только мешает из-за слабого покрытия типами. Эффективный он может быть только, если его использовать как Java. Правда тогда вопрос - почему не Java, почему не Dart, почему не C#?

1 Не нужен без IDE. В редакторых без обвеса бесмыссленно на нём писать.

А ничего, что VSCode - рекомендованный редактор расширяемы до IDE при использовании TS?

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

А что у вас в продукте такого уникального, что имеет смысл тырить? ИМХО - 95% продуктов не имеет смысл воровать. Так как они копии чего-либо.

  1. Прямо из документации: Null и его весёлые проблемы, простой тип Boolean, точно Вам говорю!

А что не так? Null - идиоматически инициализированное, но «нулевое» значение. Undefined - идиоматически не инициализированное пустое значение. Не надо просто смешивать их вместе и проблем не будет.

Ссылки на «нормально». Да весь раздел по ссылке весёлый.

А что не так? Наследие динамического языка. Да еще с двумя сущностями обозначения «пустоты». Код показывает через Ж написанную функции, которые могут принять что угодно. Не делайте такие функции и все будет ок.

3 Это надо разбираться и уметь,

Как и в любом стеке.

а те, кто клепает на React/Vue, да и просто большинство - не знают, как вообще работает JS или ИХ выбранный framework, куда > им до выведения типов, сложно, короче.

Как и большинство программистов не знаю как работает компьютер (память, процессор, etc.). Разберитесь - будет счастье.

4 Всегда стремает MS.

Язык под лицензией апача. Компиляторов - не один, ЕМНИП. Есть реализации не от MS. Только стандарт имплементирует с некоторым опозданием.

Сколько я с ней не работал, везде отношение «пользователь - не человек».

Пользователь - не хочет думать. И тут они правы. У Apple еще хуже отношение, они считают своих пользователей не просто нечеловеками, а конченными. Сомневаетесь? Посмотрите на ограничения их ОС.

А так, если на этот список закрыть глаза, очень здравая идея.

Плохая идея. У вас нет критериев использования TypeScript. Он нужен если вы собираетесь писать в Java-like/C#-like style весь проект и маниакально покрывать все и вся типами, интерфейсами, писать кучу .d.ts и серьезно относитесь к типизации. А это огромные временные затраты. И не гарантирует ничего, кроме защиты от совсем тупых ошибок.

Если использовать в TS те же any, unknown и подобные вещи - он становится просто полифилом для JS.

И да. Я за почти 10 лет работы с JS/TS не видел ни одного проекта, где TS менял что-то к лучшему. То же самое можно сделать и на JavaScript актуальной версии. Просто для этого надо его знать.

small-entropy
()

Уж если так хочется упоросться по типам - можно взять Elm (очень больно) или Rust (чуть менее больно, но и менее готово).

Вопрос - а что вообще нужно от языка? Надо понимать - frontend (а тут судя по всему про него) ничто иное, как динамическая штука. И типизация в нем скорее вредит. При этом - один фиг любой язык для frontend собирается либо в JS, либо в WASM. То есть - динамика была, будет и останется.

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

ООП в JS есть, на основе прототипов. Сахар в виде class/new давно завезли. Инкапсуляция есть (private methods, private properties). Полиморфизм частично поддерживается (override, конечно, но это в наше время уже считается полиморфизмом). При желании можно на этом всем даже абстрактные классы напилить. Если очень надо.

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

Иными словами - TypeScript просто попытка Microsoft занять нишу языка разработки для браузеров. У него есть плюсы (банально, его дизайн куда лучше чем у JS) - но прямо киллер-фич нет. Если не знаете JS - то лучше использовать его, хотя бы освоите. Все равно без понимания как работает он - дальше уровня говноподелки не уйдете.

small-entropy
()
Ответ на: комментарий от small-entropy

Весь пост - один большой теоретический «прогон», Луговский-стайл.

Поэтому как и в случае с его постами - да, вы правы и все описанное технически правда. Но ровно также как и с его постами и озвученными мыслями есть нюанс:

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

alex0x08 ★★★
()