All streams
Search
Write a publication
Pull to refresh
4
0
Алексей Повар @wert_lex

Server Side Developer

Send message

Они есть, но если сравнивать с C#, Java и тем более JS — значительно меньше.
Вообще на мой взгляд Scala сейчас переживает не лучшие времена. Волна хайпа прошла, scala-only фичи потихоньку подвозят в мейнстримовые языке (те же лямбды в Java заставили задуматься очень многих о том действительно ли им всё это надо или и джавы хватит). Kotlin, опять же появился.


Вообще по своему Scala-опыту могу сказать, что использовать Scala как Better Java не очень хорошо выйдет. Оно хоть и достаточно интероперабельно, но не так всё гладко. Плюс многие Scala-библиотеки делают вещи scala-way (чем и хороши). В этом плане Kotlin выглядит сильно лучше.


Но и нельзя сказать что рынок совсем глух. Даже на неактивный в данный момент профиль на upwork раз в пару недель уж точно инвайт на Scala-интервью прилетает.


Ну и еще такое дело… чтобы понимать хайповые Scala-штуки, нужно хоть немного уметь Haskell. Не то, чтобы обязательно, но это сильно упрощает жизнь и даёт понимание того, что коллектив авторов там не совсем упоролся, а просто решает функциональным образом некоторые проблемы.

Давайте я попробую. У меня есть интересный опыт вида Scala -> JavaScript (и сервер и фронт) -> Typescript -> Scala.


  1. всем кто пишет на строготипизированных языках нужно обязательно попробовать языки со слабой типизацией и наоборот. Например, на домашних поделках внезапно оказывается, что можно не писать тонны бойлерплейта (привет Java), и не воевать с компилятором. Такое вот чистое творчество.
  2. как правильно заметили выше — в слаботипизированных языках типы никуда не исчезают. Они просто становятся сильно менее строгими и позволяют больше фривольностей.
  3. судя по всему существует определённый предел для проекта с со слабой типизацией. Это и количество задействованных одновременно людей (интерфейсов нет), и объем проекта (типы — документация). Выше некоторого объема начинается настоящая боль.
  4. насколько я вижу сейчас, в мейнстримовых языках типы — не панацея, но здорово помогает. Системы типов либо не достаточно мощные (Java, например), чтобы выражать всё задуманное. Либо чересчур сложные (Haskell, Agda, Idris), чтобы на этом можно было писать бизнес-код средними бизнес-программистами. Плюс частенько порождает некоторые теоретические тупики, которые императивно решаются в десяток строк кода, а функционально заставляют весь мир намотать на себя. Есть Scala, которая пытается быть и тем и другим, но у неё свои проблемы есть.
  5. как минимум в мейнстримовых языках со строгой типизацией от написания тестов никуда не сбежать — система типов не достаточно мощная, чтобы выразить все операции с данными, плюс в игру вступают сайд-эффекты, внешний мир, базы данных, итд. Со стороны приёмочного тестирования, едва ли тестов меньше. В юнит-тестах — возможно.

Вообще, безотносительно самого JS мне очень нравится связка JS + TS из-за gradual typing. Хочется писать быстро — пишешь быстро на JS и надеешься на лучшее. Хочется писать надежнее — развешиваешь типы и спишь по ночам крепче.


Если кому-то интересно, я с радостью могу поотвечать на волнующие вопросы :)

Та же история с ноутбуком, спиной и шеей. Туда, куда монитор с собой не прихватить, беру вот такую штуку, и это хоть и выглядит на первый взгляд странно, но гораздо удобнее для нормального рабочего дня.
http://www.nexstand.com

Тут, к сожалению, вижу буквально три варианта развития событий:


  1. оставаясь в правовом поле написать в жалобную книгу, зафиксировать на фото/видео, отправить претензию заказным письмом с уведомлением о вручении, итд
  2. досудебный способ решения проблем. По сути это эдакая слегка серая зона в законе. Ну например, вам говорят "И чё!", а вы говорите, что сейчас напишете развёрнутое письмо, допустим в налоговую, о том, что у вас есть подозрения, о том, что кто-то уклоняется от налогов, или нарушает противопожарные нормы или еще что-нибудь. Или заливаете на ютуб видео и отправляете его в местную газету, прокуратуру, куда там еще можно.
    По факту это эдакий обмен угрозами, но разумеется угрозы должны оставаться в правовом поле и не должны быть взяты совсем с потолка. Например, пожарные нормы очень непросто соблюдать (и это в самом деле чертовски важно!).
  3. наносить физический, психологический, моральный и кармический урон оппоненту :)

И реально нормальные, безопасные и юридически обоснованные действия можно советовать и предпринимать только руководствуясь пунктом 1.
А вот в пунктах 2 и 3 ситуация может очень резко измениться не в вашу пользу. Поэтому не надо так (в самом деле не надо).

Ну как тут не вспомнить Пелевина и Generation П? :)

А мы же оба в курсе, что профит от написания на Сишке будет околоминимальный, а вот памятью рулить придётся руками, не забывать освобождать ресурсы, и как-то стараться уметь жить асинхронно?
При этом самая медленная часть браузера это по-прежнему не JS, a DOM.

Интересно, насколько вариант с кинетической энергией вообще жизнеспособный? С одной стороны получается, что было бы очень круто и правильно в спортивные часы, вроде алюминиевых Apple Watch встраивать такую штуку. Сделал с утра зарядку, размялся пяток раз в течении дня, прошёл пару километров — получил заряженную батарею. Круто же.


Но в часах этого нет сегодня. А значит где-то есть подвох.

Такой, например? https://meetfranz.com
Я пользовался — мне не очень зашло. Но идея, имхо, прикольная.

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

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

Вот кстати из моего наскального опыта, использовать scala как better java — это в самом деле дорога в никуда. Язык действительно достаточно хорошо заточен на то, чтобы возлюбить FP, FRP, иммутабельность. Правда в какой-то момент надо научиться понимать во что это всё хотя бы примерно компилируется, но тем не менее.

А и в самом деле интересный товарищ http://www.cs.cornell.edu/~ross/
Спасибо

А можно подробнее про этого человека? Возможно у него есть имя? Было бы интересно узнать.

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

Согласен.


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

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

Очень странная метаморфоза произошла с Typesafe.


Вообще, по моим ощущениям, примерно с того же времени в Scala начался какой-то застой. Если тогда появление Kotlin выглядело забавным, то сейчас выглядит так, будто новый JVM проект и в самом деле стоит начинать на Kotlin. Потому что действительно better java, а не wannabe haskell, со всеми вытекающими.

все давно используют ES6 Modules

Пока на ноде es6 модули не допилили до production-ready. Так что CommonJS и AMD надо как минимум понимать.

Ой. Я просто оставлю это здесь: https://eloquentjavascript.net/2nd_edition/10_modules.html
Тут всё, что нужно знать про CommonJS и AMD модули. А тут еще и ES6 зацепили: https://eloquentjavascript.net/10_modules.html


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

Twitter API же ровно так и построен.

В большинстве случаев достаточно перенести /home. В зависимости от поставленного софта, иногда еще некоторые директории. Я например, разные IDE и прочий софт не из репозиториев и не из пакетов ставил в /opt, который тоже таскал с собой.


Вообще в какой-то момент на компьютере стало два диска — на ssd (вроде бы 120Gb) корень, и соответственно, система. Основной контент (home, opt) на hdd (примонтирован на /disk), но не напрямую. Т.е. /home/user лежит на ssd. Вещи, к которым не нужен быстрый доступ (например, дропбокс, картинки, и всякое такое) в /disk/home/user и симлинками закинут в /home/user.


Такой вот фьюжн драйв руками :)


При переезде или мажорном обновлении, весь /home/user надо дозаписать в /disk/home/user, отмонтировать, и спокойно обновляться.


Получилось сумбурно, но думаю разобраться можно :)

Information

Rating
6,326-th
Location
Россия
Registered
Activity