I wanna show u a little bit of Smalltalk 80 that I just compiled from https://github.com/dbanay/Smalltalk (Blue book implementation)
- The code is not a bunch of files but objects inside hierarchy of Packages -> Classes -> Protocols -> Methods
- The Smalltalk is implemented in itself, here you can see method that compiles methods, there also JIT, GC implementations etc
- The system is live and running right now, you can easily modify it on the fly and the changes will be displayed immediately
- Every class, method has a comment, almost literature programming
- Everything is an object. Objects communicate by receiving messages
- Fields are private because of it, the only way to get them is by send message(thats why we got setters getters in java)
- Сode reuse is very high because of all this, the average method length of a modern Smalltalk implementation - Pharo is 6 lines
- You can get this number by evaluating code inside Smalltalk image since everything is an live object = easy introspection
- The code is not a bunch of files but objects inside hierarchy of Packages -> Classes -> Protocols -> Methods
- The Smalltalk is implemented in itself, here you can see method that compiles methods, there also JIT, GC implementations etc
- The system is live and running right now, you can easily modify it on the fly and the changes will be displayed immediately
- Every class, method has a comment, almost literature programming
- Everything is an object. Objects communicate by receiving messages
- Fields are private because of it, the only way to get them is by send message(thats why we got setters getters in java)
- Сode reuse is very high because of all this, the average method length of a modern Smalltalk implementation - Pharo is 6 lines
- You can get this number by evaluating code inside Smalltalk image since everything is an live object = easy introspection
В жабу собираются добавить нуллабилити, возможно один из последний популярных языков где ее нет(го не в счет)
Оно конечно выглядит странно, добавить настоящую нуллабилити by default нельзя так как обратная совместимость(как и в C#, но там можно выбрать настоящую при создании нового проекта)
Поэтому добавляют сразу 2 символа, ! для точно не нуллаблов и ? для нуллаблов
Нормальная Sound Nullability только в Dart и Kotlin
Rust и Swift используют Optional врапперы(
Оно конечно выглядит странно, добавить настоящую нуллабилити by default нельзя так как обратная совместимость(как и в C#, но там можно выбрать настоящую при создании нового проекта)
Поэтому добавляют сразу 2 символа, ! для точно не нуллаблов и ? для нуллаблов
Нормальная Sound Nullability только в Dart и Kotlin
Rust и Swift используют Optional врапперы(
T? в свифте просто синт сахар над Optional<T>)еще раз вырезка из интревью где автор Swift считает что они зафейлили с простотой, язык миллиона спешал кейсов
https://fixupx.com/krzyzanowskim/status/1812238141496934738
https://fixupx.com/krzyzanowskim/status/1812238141496934738
FxTwitter / FixupX
Marcin Krzyzanowski (@krzyzanowskim)
“Swift, the original idea was factor complexity (…) massively failed, in my opinion (…) Swift has turned into a gigantic, super complicated bag of special cases, special syntax, special stuff”
lesson learned from Chris Lattner on Swift
lesson learned from Chris Lattner on Swift
👍1
- у нас есть свой Джонатан Блоу дома
- Джонатан Блоу дома
ваще забавный язык, так и знал шо это его увлечение живыми объектами выльется во чтото большее чем пара книг по жабе
https://youtu.be/QaKIw1Bh3Oc
- Джонатан Блоу дома
ваще забавный язык, так и знал шо это его увлечение живыми объектами выльется во чтото большее чем пара книг по жабе
https://youtu.be/QaKIw1Bh3Oc
YouTube
EOLANG: Basics
We will discuss how EOLANG works.
Внимание
растовый trait используется в смысле признак, например фенотипичный признак https://en.wikipedia.org/wiki/Phenotypic_trait
Теперь все обрело смысл
растовый trait используется в смысле признак, например фенотипичный признак https://en.wikipedia.org/wiki/Phenotypic_trait
Теперь все обрело смысл
👍2🤯1
Добавил старое демо inline репла в репу
Помойму для первого впечатления о языке смотрится замечательно
https://github.com/gavr123456789/Niva?tab=readme-ov-file#some-strange-demo
Помойму для первого впечатления о языке смотрится замечательно
https://github.com/gavr123456789/Niva?tab=readme-ov-file#some-strange-demo
GitHub
GitHub - gavr123456789/Niva: Smalltalk like programming language
Smalltalk like programming language. Contribute to gavr123456789/Niva development by creating an account on GitHub.
нашел классное скопище примеров имплементации одного и того же туду бекенда на куче фреймворков
https://www.todobackend.com/
обожаю такие штуки, удобно для сравнения идеалогий яп,
у мя у самого похожая репа была, правда только для 4рех
https://www.todobackend.com/
обожаю такие штуки, удобно для сравнения идеалогий яп,
у мя у самого похожая репа была, правда только для 4рех
🔥2
Макинтош на ардуино за 0 рублей https://axio.ms/projects/2024/06/16/MicroMac.html
https://github.com/evansm7/umac
https://github.com/evansm7/umac
🥰1
gavr_sas
Культурологи объявили неделю жабьих новостей
Главные будующие фичи JVM это project Valhalla и project Panama
Project Valhalla разрабатывает новые мажорные фичи для OpenJDK с 2014 года
- Value Types highly-efficient small 'objects' without inheritance
Vala compact classes mentioned???
- Generic Specialization List<int> for example, другими словами мономорфизация, проблема в том что она не позволяет иметь динамических библиотек, ведь если код фукнции инстанциируется на этапе вызова не ясно что делать когда коллер может быть любым из динамической библиотеки
C# решает эту проблему мономорфизируя все типы в рантайме
- Reified Generics; retaining actual type at runtime, уже есть в котлине за счет инлайн функций, иметь их без инлайна будет прикольно
- более классный volatile
Project Valhalla разрабатывает новые мажорные фичи для OpenJDK с 2014 года
- Value Types highly-efficient small 'objects' without inheritance
Vala compact classes mentioned???
- Generic Specialization List<int> for example, другими словами мономорфизация, проблема в том что она не позволяет иметь динамических библиотек, ведь если код фукнции инстанциируется на этапе вызова не ясно что делать когда коллер может быть любым из динамической библиотеки
C# решает эту проблему мономорфизируя все типы в рантайме
- Reified Generics; retaining actual type at runtime, уже есть в котлине за счет инлайн функций, иметь их без инлайна будет прикольно
- более классный volatile
https://t.iss.one/ascii_nova_blog/1139?comment=68419
хоспади, они и конфу свою назвали гига-конфой(сбер)
итого
-гига чат
-гига иде
-гига конф
хоспади, они и конфу свою назвали гига-конфой(сбер)
итого
-гига чат
-гига иде
-гига конф
🗿2