Concrete syntax matters
Concrete syntax matters
Wow, interesting talk, and I agree that this stuff needs more research.
You start with a nice syntax, and when applied to more than a minimal example of happy path programming, you end up in a mess...
Original Video description from youtube is too long to fit into a single post/toot, so just the title:
Slim Lim: "Concrete syntax matters, actually"
Library Design: Naming Conventions – Streaming
My pet programming language, #Rocket, now supports a simple "raise" statement by which you can raise exceptions.
E.g.:
```
raise StopIteration()
```
The parenthesis can be omitted, too, in which case a new instance of the exception will be created with no parameters.
So far, exceptions could only be thrown by built-in functionality such as integer division (e.g. `1 \\ 0`). To make exception properly accessible in user-written code, I had to replace some "language magic" to make stuff properly accessible in the code.
#programming #programminglanguage #programming_languages #programminglanguages #RocketLang
Card DOM на языке Argentum: мы дома
Пятая статья в серии о DOM-подобных моделях данных в разных языках программирования. В предыдущих частях мы разобрали DOM-подобные структуры данных, оценили их поддержку в ряде языков с помощью бенчмарка CardDOM и сравнили их реализацию в JavaScript . и С++ , Rust и D-lang (а также упомянули Zig, Odin, Jai, Python, V, Cone и Pony). Эта растянутая на несколько публикаций серия показала, что современные языки удивительно плохо приспособлены для работы с документной объектной моделью — фундаментальной структурой данных современных высокоуровневых приложений. Посмотрим, как с этой задачей справляется Argentum — язык, для которого такие структуры данных являются нативными.
https://habr.com/ru/articles/967770/
#programming_languages #data_structures #структуры_данных #язык_программирования #сравнение
CardDOM на Rust: через лайфтаймы и боль
Четвертая статья в серии про DOM-подобные модели данных в различных языках программирования. В прошлых сериях мы рассмотрели DOM-подобные структуры данных, тест их поддержки в языках программирования с помощью бенчмарка CardDOM и сравнили их реализацию в JavaScript и С++ . Сегодня - Card DOM на Rust - великом и ужасном.
https://habr.com/ru/articles/966304/
#programming_languages #rust #data_model #язык_программирования #модель_данных
Language Design Notes
Library Design: Naming Conventions – Lookup
[Перевод] Безопасность памяти для скептиков
Если вам надоело слушать проповеди про «безопасность памяти» - эта большое эссе именно для вас, усталых скептиков. Эндрю Лилли Бринкер - ведущий инженер компании MITRE в области безопасности программного обеспечения - спокойно разбирает факты и доказывает: безопасность памяти - не прихоть и не религия Rust-евангелистов, а экономически оправданный шаг в сторону надёжного, дешёвого и безопасного софта. Rust, Java, Go и им подобные языки не делают программистов «лучше» - они просто предоставили ремни безопасности в сам процесс разработки. И, как в случае с автомобилями, это спасает тысячи «жизней» приложений.
The Return of Language-Oriented Programming
The "Impossible" Optimization (Mojo compile time magic)
Rust и приведение типов
Присматриваемся к Расту, как возможному кандидату на реализацию задачи Card DOM . Рассматриваем, как он поддерживает полиморфные структуры данных, в частности, приведение типов между трейтами.
which languages have a REPL and Type Annotation?
الدرس (9)
🚀 عوامل بايثون: الأدوات التي تحرك الشيفرة (الجزء 2)
2. عوامل المقارنة (Comparison Operators)
تُستخدم هذه العوامل لإجراء مقارنة بين اثنين من مختلف القيم والفحص عن ارتباط معينٍ بينهما، فإذا كانت الارتباط متحقّقاً كان الناتج قيمة "True" وإلا كانت القيمة "False"، إذ تستخدم هذه العوامل لفحص التالي:
" == " للتساوي، و" != " لعدم التساوي، و" > " للأكبر من، و" < " للأصغر، و" >= " للأكبر من أو التساوي، و" <= " للأصغر من أو التساوي.
تذكير، إذا لاحظت حصول شقلبة في عوامل الأكبر والأصغر في هذا النصّ فإنّ السبب يرجع إلى طريقة تعامل الأنظمة الكمبيوترية مع العلامات عند مزجها مع اللغة العربية، وعليه فأنصحك باتّباع الأسلوب الذي كنّا نتبعه في مرحلة الابتدائي، وهي أنّ الزاوية الحادة في العلامة واقعة بجانب القيمة المفترض كونها الأصغر😅.
Реализация DOM-подобных структур данных на C++
Это третья статья в серии про DOM-подобные модели данных в различных языках программирования. Ранее мы рассмотрели что такое DOM-подобные структуры данных и как оценить их поддержку языках программирования и препарировали JavaScript . Сегодня мы проверим как с Card DOM справится С++.
https://habr.com/ru/articles/957906/
#programming_languages #benchmark #c++ #data_structures #языки_программирования #сравнение #структуры_данных
TIL that when implementing a #programming language, I suspect many design decisions are made because they're less work to implement.
Case in point: if everything is an object, like in Ruby, it's a *lot* more work than if things like integers and strings are just non-interactive data. Of course, this makes the interaction model more consistent. And you can do silly things like '5.type()', which is technically legal #Mifflin code.
What do tests look like in angst? I'm glad you asked! Here's what it looks like:
"Test: Basic assignment and printing"
My heart is a gentle breeze.
it must be that my heart equals 166
"Test: Increment operation"
My soul is empty.
add to my soul
add to my soul
it must be that my soul equals 2
"Test: Addition of variables"
My joy is a star.
My sadness is nothing.
add my joy to my sadness
it must be that my joy equals my sadness
"Test: Comparisons"
My hope is a vast ocean.
My despair is a dry land.
it must be that my hope is greater than my despair
it must be that my despair is less than my hope
#Poetry #Code #angstlang #software #programming_languages #coding #softwareDevelopment
Continuing work on my Bad #Poetry as #Code language, #angstlang
Yesterday I got the idea that that'd be really funny to be able to write test cases for this as poems. So, I can't handle arrays or strings yet, but we have assertions and a test framework.
It also occurred to me that I should not "execute" these as programs. They're poetry, so you *recite* them.
#software #programming_languages #coding #softwareDevelopment
Как JavaScript справляется с DOM-подобными структурами данных
Это вторая статья в серии о поддержке DOM-подобных моделей в различных языках программирования. Сегодня мы рассмотрим как JavaScript справляется с бенчмарком Card DOM.
https://habr.com/ru/articles/956542/
#programming_languages #benchmark #javascript #garbage_collector #data_structures