11 ms·
Rapira (Рапира) – Soviet programming language interpreter
- DeathArrow 4mo agoIn an alternate universe where Soviets won the Cold War, we would be writing in Russian on новостихакеров.рф and arguing which vacuum tubes make the best computers.
- gus_massa 4mo agoIt feels like Pascal in Cyrillic. Autotranslation, with a little manual correction, but I can't fix КНЦ (autotranlated to KNC): FUNC FACT (N); NAME: R; 1 -> P; FOR I FROM 1 TO N :: R * I -> R ALL RES: R KNC; FOR N FROM 0 TO 6 :: ? "FACT(", N, ") = ", FACT(N) ALL;
- gus_massa 4mo ago[flagged]
- dijksterhuis 4mo agohttps://news.ycombinator.com/newsguidelines.html https://news.ycombinator.com/newsguidelines.html > Don't post generated comments or AI-edited comments. HN is for conversation between humans.
- yeputons 4mo agoI would read «КНЦ» as «КОНЕЦ», literally “an end” or “the end” (Russian does not have anything resembling articles). Who needs vowels, anyway. Also, «ВСЕ» feels like «ВСЁ» in this context, I’d translate that as “that’s all”.
- varjag 4mo agoThe acronyms are because it was originally russified by substituting character codes in Pascal binary. Thus VAR became ИМЯ, END became КНЦ and so on. Same reason JOB hilariously became ЗАД in the liberated OS/360. Everyone's happy, head of development celebrates his 3rd degree Lenin's premium.
- orbital-decay 4mo agoIs it really Pascal though? There's a lot of academic/educational languages with the similar syntax, and I think РАПИРА had additional data structures. (I've read a book on it and tinkered with it as a kid, but it was in the early 90's and I barely remember any of it)
- gus_massa 4mo agoIt uses :: instead of BEGIN, so it's not 100% Pascal.
- deleted 4mo ago[deleted]
- vbezhenar 4mo agoFew fixes: 1. "ИМЕНА" is plural, so instead of "NAME:" it's a bit more appropriate to use "NAMES:". Probably should be "VARIABLES" or "VARS" in modern context. 2. You've got few typos mixing "R" and "P". Should be "R" everywhere. 3. Instead of "ALL" you should use "DONE". 4. Instead of "KNC" you should use "END". So it would look like this: FUNC FACT (N); NAMES: R; 1 -> R; FOR I FROM 1 TO N :: R * I -> R DONE RES: R END; FOR N FROM 0 TO 6 :: ? "FACT(", N, ") = ", FACT(N) DONE;
- xxs 4mo ago>It feels like Pascal in Cyrillic replace cyrillic w/ russian and it'd be ok. КНЦ = end (конец in russian is end). However, in bulgarian in means 'thread' (as in sewing thread) and it has lots its meaning of end, aside from 'from needle to thread' expression where it means from the tip of the needle to the end of the thread. Also 'ALL' (и все = it's over/that's all), which should be 'end' as in begin/end in pascal. The main point still stands - it's Pascal.
- stodor89 4mo ago> However, in bulgarian in means 'thread' You can use "конец" for "end" in Bulgarian too, even though it's antiquated.
- bojan 4mo agoBeing Serbian, I also find equalising Cyrillic with Russian mildly annoying. Or even worse, when people call it "Russian letters". With that being said, I do think it's harder to make a clear programming language based on is a Slavic language, due to all the case and gender forms.
- dimava 4mo agoSince I know russian well, here's a proper translation for y'all FUNC FACT (N); NAMES: P; (* variable names *) 1 -> P; FOR I FROM 1 TO N :: P * I -> P DONE (* endif *) RET: P (* return value *) END; (* end of function *) FOR N FROM 0 TO 6 :: ? "FACT(", N, ") = ", FACT(Н) (* print *) DONE;
- deleted 4mo ago[deleted]
- ymir_e 4mo agoThe playground on [demin.ws/rapira](https://demin.ws/rapira/ https://demin.ws/rapira/) feels well made. This is a pretty cool historical artifact. Does anyone use "native language" programming languages in education or day to day?
- konart 4mo ago1C is widely used in Russia as part of 1C:Enterprise (https://en.wikipedia.org/wiki/1C:Enterprise https://en.wikipedia.org/wiki/1C:Enterprise think sap/abap) UPD: 1C can be used in both Russian and English. And I'm pretty sure it can be used outside of 1C:Enterprise. It also has BSL Language Server and IDEA\VSCode extensions.
- voidUpdate 4mo agoI dont use any of them, but here's a list of non-english programming languages that some people probably use day-to-day https://en.wikipedia.org/wiki/Non-English-based_programming_languages https://en.wikipedia.org/wiki/Non-English-based_programming_...
- arcadialeak 4mo agoThere is also an independent open-source interpreter for 1C language (which is to this day reported to be extensively used in Russian enterprise) implemented in C#. I haven't tried it myself, but just though that it's also worth mentioning here as the project seems to be actively worked on: https://github.com/evilbeaver/onescript https://github.com/evilbeaver/onescript
- ahmedfromtunis 4mo agoI wish the Soviets had focused more on developing an independent computer industry and their own distinct flavors of programming languages. Imagine the thrill of studying languages built to run on completely separate hardware architectures, featuring entirely novel paradigms and structures. This would be the closest thing to experience reverse-engineering a computer from an alien spaceship.
- falcor84 4mo agoThat was my feeling when I first heard about Lisp Machines. It's unfortunate that I never got to see or use one in person.
- przemelek 4mo agoBut they simply weren't able to sustain it. In the West, while the military industry initially pushed computer development, private companies quickly adapted those technologies for the consumer market. Over time, the Western consumer market became vastly larger than the military one. In the USSR, this cross-pollination wasn't possible because anything that even touched the military was immediately classified as a state secret. This obsession with secrecy even affected civilian infrastructure like nuclear power plants. Plant operators weren't fully trained on how the systems worked under extreme conditions, and they were kept completely in the dark about inherent design flaws—because in the Soviet system, everything was by definition perfect and superior to the West. Furthermore, because the consumer market was strictly controlled by the government and the party, the Soviet economy lacked any organic market signals regarding what people actually wanted or needed. Apparatchiks had to look elsewhere for data, so they resorted to copying Western solutions—sometimes just copying the basic concept (like a radio where users could choose their own stations), and sometimes cloning the entire machine. While Soviet scientists had some highly innovative and interesting ideas in the beginning, central planners eventually decided it was faster and easier to copy a Western solution that was already 5, 10, or 15 years ahead in mass production.
- vbezhenar 4mo agoI think it's a bit different. USSR just wasn't rich enough to afford experimentation and innovation. Resources (including human brain power) were quite limited. So they had to copy proven solutions. Simple as that. It's easy to judge them in the retrospective. But they had to make decisions, using the information the had at the moment, weighing risks as they saw them at that moment.
- mdtrooper 4mo agoit remembers to me https://en.wikipedia.org/wiki/DRAKON https://en.wikipedia.org/wiki/DRAKON a powerful flow chart (from the USSR) .
- danslo 4mo agoI could be wrong, but I believe the name is in reference to the Divine Rapier, an item in Dota 2, which is very popular among Russian speakers.
- archargelod 4mo agohttps://en.wikipedia.org/wiki/Rapira https://en.wikipedia.org/wiki/Rapira > 1982
- Pay08 4mo agoRapira appears to be a direct latinisation of the name of the language.
- kasabali 4mo agoNah it's a razor blade :P https://www.amazon.com/100-Rapira-Platinum-Razor-Blades/dp/B01M645L3W https://www.amazon.com/100-Rapira-Platinum-Razor-Blades/dp/B...
- nivertech 4mo agoThis Soviet project developed two Russian-language PLs: Robic[1] and Rapira[2]. Robic was similar to Logo, but unlike Logo, which had only one actor - a turtle, Robik had several: a Train, an Ant, a Painter, and so on Rapira was more like SETL + Python. It was a dynamic interpreted PL with a rich set of compound data types, such as sets, records (associative arrays), and so on. Compared to the contemporary BASIC, it was ADVANCED Like Logo, Robik was used to teach programming to kindergarthen-age children, while Rapira was aimed at high school students --- 1. https://en.wikipedia.org/wiki/Robic https://en.wikipedia.org/wiki/Robic / https://ru.wikipedia.org/wiki/%D0%A0%D0%BE%D0%B1%D0%B8%D0%BA https://ru.wikipedia.org/wiki/%D0%A0%D0%BE%D0%B1%D0%B8%D0%BA 2. https://en.wikipedia.org/wiki/Rapira https://en.wikipedia.org/wiki/Rapira / https://ru.wikipedia.org/wiki/%D0%A0%D0%B0%D0%BF%D0%B8%D1%80%D0%B0_(%D1%8F%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F) https://ru.wikipedia.org/wiki/%D0%A0%D0%B0%D0%BF%D0%B8%D1%80...
- orthoxerox 4mo agoIn my school we had a Logo-like PL where you controlled a kangaroo and a more complex one where you сontrolled a robot arm with an internal stack that worked on a rectangular array of items. I remember the robot blowing up when you triggered a logical error like going out of bounds or a stack over/underflow. UPD: The PLs were called "Roo&Robby" and written by https://en.wikipedia.org/wiki/Mark_Sapir https://en.wikipedia.org/wiki/Mark_Sapir before he emigrated to the US.
- grishka 4mo agoBy the way, there's one Cyrillic programming language still in wide use today. It's part of 1С (1S), an ERP system that's absolutely everywhere in Russia. The language itself is quite similar to Visual Basic. It's awkward to write with a regular Russian keyboard layout, but I was told that there exist special layouts just for it.
- flexagoon 4mo agoThere's also Kumir, which is an educational programming language used in Russian schools
- grishka 4mo agoHm. That must be new, I was taught Turbo Pascal
- flexagoon 4mo agoSomewhat new, or at least wasn't used in schools until fairly recently. It's a programming environment with tools like Turtle Graphics built in, specifically for teaching the basics of coding. There are even some tasks in ЕГЭ for it. https://www.niisi.ru/kumir/ https://www.niisi.ru/kumir/ The website screenshot shows it on Windows XP though, don't know if it actually existed back then or if it's just typical Russian institutions still using Windows XP.
- throw-the-towel 4mo agoIn fact, the language itself dates to rhe 1980s I think. No idea whether its use in schools is recent though.
- layer8 4mo agoI’m curious, why is it awkward to write with a regular Russian keyboard layout? Presumably due to punctuation and not due to the Cyrillic characters?
- 4mo ago
- youarenotyu 4mo agoI need one for Japanese
- chaidhat 4mo agoMissed opportunity to make all variables global and public.
- zerr 4mo agoRefal is an interesting functional programming language https://en.wikipedia.org/wiki/Refal https://en.wikipedia.org/wiki/Refal