3 ms·
Tip for anyone presenting a new programming language, IMHO: include a 10-to-20 line program on the front page to give people a quick idea of what it looks like.
by ks2048 2y ago
Tip for anyone presenting a new programming language, IMHO: include a 10-to-20 line program on the front page to give people a quick idea of what it looks like.
After a few clicks, I think I found the "Hello World" example,
begin-handler /hello-world public
get-param name
@This is Hello World from <<p-out name>>
end-handler
- duskwuff 2y agoThere's a more extensive worked example at: https://gliimly.blogspot.com/2024/11/multi-tenant-saas-notes-web-application.html https://gliimly.blogspot.com/2024/11/multi-tenant-saas-notes... And, at a glance, I see: - HTML output being constructed by string concatenation. - SQL queries being constructed by what looks like sprintf. - No functions, just HTTP handlers, some of them marked as "private". - No expression system, just non-composable commands like "hash-string" or "match-regex". - No evidence of an object or class system. - Some evidence of filenames with 'magical' behavior like "before-handler.gliim". None of this fills me with confidence. This is a toy at best.
- benatkin 2y agoIt's a lot like https://hurl.dev/ https://hurl.dev/ or https://jqlang.github.io/jq/ https://jqlang.github.io/jq/ - it's an intentionally limited DSL. I think if it were more like https://hurl.dev/ https://hurl.dev/ I might find it slightly more interesting.
- thephyber 2y agoThe criticism wasn’t only about how limited the DSL was — it was about how some of the design choices are repeating patterns which are very common sources of security defects. HTML and SQL are DSLs themselves and have non-trivial security contexts.
- deleted 2y ago[deleted]
- duskwuff 2y ago> it's an intentionally limited DSL. That isn't the sense I get from the example. It shows an entire user-facing web application being written in this language, with every indication that the author thinks this is an appropriate use case.
- Terretta 2y agoAbout that: https://gliimly.github.io/about-gliim.html https://gliimly.github.io/about-gliim.html Modeling language Gliimly is a very high-level modeling language. It's about solving problems by modeling the solution and connecting the components to create high-performance, low-footprint executables; and not about managing memory, manipulating bits and bytes or writing complex code. Syntax matters Syntax of a language matters, not just for writing code now, but for someone else reading it years later. Gliimly language is designed to be intuitive, easy and rapid in use on both ends, and to be close to the way humans are wired, rather than machines. Language Gliimly programming language is memory-safe, meaning it will prevent you from accidentally overwriting memory or freeing it when it shouldn't be. Gliimly's memory-handling is not limited to just memory safety; it also includes automatic freeing of memory at the end of a request, preventing memory leaks which can be fatal to long running processes. Similarly, files open with file-handling statements are automatically closed at the end of each request, serving the same purpose. Types Gliimly is a strongly-typed language, with only three primitive types (numbers, strings and booleans) and a number of structured types (message, split-string, array, index, index-cursor, fifo, lifo, list, file and service). Gliimly is a declarative language, with a few lines of code implementing large functionalities. Gliimly is also very simple - it does not even have expressions! That's because it's designed to achieve application goals with less coding. Statements (see also https://gliimly.github.io/statements.html https://gliimly.github.io/statements.html) Gliimly statements are designed for safety, ease of use, and ability to write stable code. Most statements typically perform common complex tasks with options to easily customize them; such options are compile-time whenever possible, increasing run-time performance.
- benatkin 2y agoYeah I meant that in a good way. You can build powerful stuff with a DSL that doesn't include the normal imperative programming constructs that most general purpose programming languages, but also some specialized programming languages like bash, include. jq is a nice alternative to python for sifting through JSON for many things. I think glimly is an interesting project but I wonder why they don't use something like mustache ({{ param1 }} for escaped and {{{ param2 }}} for unescaped) instead of p_web
- 1oooqooq 2y agofrom the main doc, I don't think this is the intended use case. it is about apis, not html. it is about chaining webservice calls, not using sql. it's for business logic, not generic programming needing classes my guess is that this wants to be the excell of the aws era.