2 single: Applications developed in little hours; Introduction
4 =================================================
5 Applications developed in little hours
6 =================================================
8 Ring is a new programming language that focuses on the Natural Language Programming and Declarative Programming paradigms
9 and will let you think different about programming and how to solve your problems in a better way. It's just released in 2016.01.25!
10 In little days we got thousands of downloads and many developers started learning and
11 using the language. Their feedback are the secret behind the language progress and success.
12 They said that Ring is powerful, beautiful and easy to learn, Some of them provided good examples about what can be done using Ring in little hours.
13 They are very happy with the language productivity.
16 pair: Applications developed in little hours; Quotes about Ring
21 "I like Smalltalk very much but now I like Ring better!"
24 "I find the language and its syntax very natural and easy to follow."
25 , Bhudda (United States)
27 "Very nice approach for a new language."
28 , Matth Moestl (Austria)
30 "Very interesting! I will keep an eye on it!"
33 "I'd like to see some benchmarks. Otherwise, at first glance, it looks really promising."
37 , Liju Sankar (United States)
39 "I wish you the best with this project."
40 , David O'Neil (United States)
43 , Jose Antonio (Mexico)
45 "This looks like it was developed by some very competent people."
46 , Jim Clack (United States)
48 "The Ring programming language seems pretty interesting so far."
49 , Eric Johnson (United States)
51 "Thank you for this awesome language and wonderful ready to use Qt binding."
54 "I think it's great what he does for the community of developers and novice programming."
57 "Ring is just awesome. The language is so cool and fluent. I am sure it's going to be BIG."
60 "What a proud, really wish you Eng. Mahmoud Samir and Your Team moving forward ^_^
61 and from now , considered me a big fan of the Ring programming language."
64 "Well guys I love this language and it appears that you have created perfect language."
67 "Good work Mahmoud, I've installed Ring Programming Language, and it's very perfect language."
70 "Thanks for this great startup programming language. I wish you best of luck."
73 "Congratulations! I am very happy and I wish you Success and good luck."
76 "Good Features of multi-use language on the Web, Mobile and Desktop."
79 "Very interesting effort."
80 , Giannakakis Kostas (Greece)
82 "I am too lazy to open comment window and write message.
83 But in your case I must say "Perfect"
84 Really, create new remarkable language like your Ring is
85 really perfect job. Even create editor for your language
86 in your language with only few rows...
87 Even noticed in rosettacode.org !
89 I read your previous articles and I tried these examples
90 a few days ago and I will continue. I love Ring.
92 P.S.: Anders Hejlsberg, Niklaus Wirth, Bjarne Stroustrup, Ada Lovelace.
93 Hall of fame is waiting...."
94 , Martin Nedopil (Czech Republic )
96 "Ring seems very attractive to me through its very easy design and the Qt bindings.
97 I like its declarative approach and the generous documentation."
98 , Shalok Shalom (Austria)
100 "Ring (and plenty of extension library + Qt) is wonderful."
101 , Kovacs Attila (Hungary)
103 "Since two days I'm trying Ring and I'm really impressed, in add to power
104 commands and easy use, it's really very efficient and very fast.
106 Each day I hope to find the couple of the year PWCT+RING ... Maybe for my
107 Christmas gift!!!! HO HO HO HO
109 Continue your fantastic job and congratulations."
110 , Jose Le Roux (France)
112 "There are 3 different styles, it looks like Python and C."
115 "I was taking a tour around Rosettacode and have found Ring.
116 I like the syntax a lot. It's clean and easy to understand.
117 It looks like a very clean BASIC dialect without sigils.
118 I can say that this is the easiest and the most BASIC-like language I've ever tried."
121 "Thanks for your effort. I took a quick look and found it interesting.
122 You are trying to follow more or less like Clipper with simple command and no rigid declaration rules. Good."
125 "Thanks for this wonderful language."
128 "Very enlightening. Good job!"
129 , Southmountain (United States)
131 "The thing I liked was the loop exiting."
132 , Leon de boer (Australia)
134 "An outstanding and easy language to program with."
135 , Kenneth Burgo (Philippines)
137 "I chose your language as I feel I can understand it better than other languages"
140 "I like the totality of the language, far more features than expected and the freedom of expressiveness is unique."
143 "Thank you very much Mahmoud! I am using ring for many experiments and so far I love it.
144 I really want to continue using ring and contribute what I can."
150 "That's more than a "cool" syntax, the example of writing free-form text between
151 curly-brackets such that each word calls a function. Which could be interesting
152 (A syntax like that would be nice for declaring text styles)"
155 "If you browse around you see they have listed 160 contributors.
156 This year they have entered Top 100 in the TIOBE index. Lot of effort
157 seem to have been made to make this language pop out and
158 catch the attention of masses."
161 "I like the idea of The Ring being in ANSI C
162 it's an impressive creation, and a lot of skill went into it"
165 "Very innovative language! Syntactically clean"
168 "The author must be commended for the readily-obvious hard work and effort that has gone into creating a rich ecosystem for his language.
169 It seems that the language is quite extensive as well. I would find it useful to see a BNF grammar and concise coverage of its semantics."
170 , Xx-Leninist-1917-Xx (Reddit)
172 "I can see the AI of the future using this technology to solve computational problems for..... the humans."
173 , Cryptonite (United States)
175 "I like your programming language, I like you are going to develop mobile app using RingQt and also
176 I appreciate your web library."
177 , Domenico D'Oria (Italy)
179 "Congratulations for the great work with this new programming language."
180 , Kenny Silva (Venezuela)
182 "Ring is an amazingly full-featured language and so well documented (the bane of most newer languages out there!)"
185 " I found the language yesterday, and liked the Qt bindings, as they give a declarative way to create a QtWidgets GUI."
188 "Ring does look intriguing, and I'll be reading more of the documentation soon"
191 "I was recently considering designing my own dynamically-typed, prototypical language and then developing a means to compile it into C/C++. However, last night I was surfing the web and noticed a little-known language called "Ring" which you've recently created. I began reading the Motivation section in Wikibooks to see why the language was designed and implemented, and I was shocked to see that someone else had created a language with the same intention and need as myself. I mean, it's mind-blowing that someone would have addressed every issue I have with the currently accepted languages. Why bother with C/C++ when the syntax can be cryptic and they are largely antiquated - why should we still be dealing with header files, etc? Moreover, your comments on Java and C# being too verbose and forcing OOP onto the user is spot on as well - yet these languages are still primarily used by millions of programmers for the most mundane tasks. At this point, I'm led to believe that it's simply a matter of legacy applications that still haven't made the transition, as well as the ever-popular "Appeal to Popularity" fallacy shared by many in academia and enterprise. Then we come to languages, that are easier and much more modern, and yet even now, are being to show their age. Languages like Python which stresses whitespace and indentation, as well as (just like the formerly mentioned languages) irrelevant tokens for the conditional statements. Granted, it's not as bad as tracking down various curly braces or semi-colons, but one misstep in indentation might as well be as frustrating to track down. The same could be true of Ruby, except with Ruby, we have even odder conventions embedded into the design of the language, which I don't feel the need to address and moreover, we're left with something like Lua which is missing a great many features that the previously mentioned languages include. There are many more languages and faults with them, we could claim that PHP is nothing more than a glue for web pages and backends but with so many frameworks available now, it's falling by the wayside fast. Javascript is constantly being cloned. So, each of these general purpose languages, which we all know are mostly domain-specific and in some cases, also oriented at certain OS(C# was before 2016 and Obj-C/Swift will likely always be primarily for MacOS apps). So, then we're left with several additional options, involving everything from hybrids to other imperative-based languages like D, GoLang, Scala, Julia, etc. But finally, there's a new language called Ring - and yes, it may just end up ruling them all. It's the unicorn we've finally been waiting to arrive, that can handle multiple domains, tasks, and paradigms. I honestly can't wait to jump in and when I do I probably won't come back up anytime soon. My only apprehension is that the language may not include a library or primitive functions for math as Python and Julia do. Aside from that, if so, hopefully, I won't be having to use linear expressions as arrays (considering how intellectually lazy it is to do) and that there will be more support/tools as the community continues to grow. It's crazy to think it's only been around for a year and yet, it's already, practically a batteries-included language."
195 "Thank you Mr. Mahmoud for all the wonderful work, whenever I dive in the Source code I see the great effort, further development more excellence, God will reward you with what you wish"
199 "What a great joy to find this surprisingly genius language !!!. It was a total joy to go through the documentation and look at the samples in Rosetta code.
200 Marvelous work. I would even leave my fortune to the development of this language. Keep the good work going and wishing this language will go viral.
202 ps: Thanks for keeping array index to start with 1. It means a lot."
204 , Nehemiah Jacob (Sydney, Australia)
206 "I find it very interesting. Especially the fact that it is cross platform makes it something to keep an eye on."
208 , Boudewijn Lutgerink
210 "The language I like the most. Efficient, simple, easy, flexible and wonderful language."
213 "I like variety. The richer the toolbox, the more appropriate the tool."
214 , Jonathan Day (Quora)
216 "I greatly appreciated your work and congratulations on what has been achieved."
217 , Umberto Meglio (Italy)
219 "Thanks a lot I just found Ring two days ago and I decided to learn it, it is amazing, the samples are helping a lot."
222 "Extraordinary. well done sir"
223 , RugbyLeague (CodeProject Member - United Kingdom)
225 "The Ring language is pleasant. You get ahead very quickly."
226 , Neskuk (CodeProject Member - Switzerland)
228 "I'm happy to use your language."
231 "I am enjoying using the Ring Programming language."
234 "I'm loving this language!"
237 "Ring Notepad is a an example of the power of Ring.
238 It is like NotePad++ with built in form design capability, drag and drop, object attributes etc.
239 It is a marvelous application"
240 , Bert Mariani (Italy)
242 "Ring is the language that offers the greatest potential for converting programmers frustrated with the amount of time it takes to develop apps in C/C++, C# and other OOP-based languages.
243 Considering the extent to which Ring has evolved since the first release in 2016, the Ring team has proven itself worthy of a very high achievement award in the world of programming languages.
244 The extent to which Ring has simplified the development database apps, web apps and GUI apps is a great credit to the Ring team.
245 Ring's implementation of OOP and GUI based apps is far superior to C++ and C#.
246 Another major achievement of the Ring team is the ease at which programmers can get on-line access to Ring documentation, compared to on-line C++ and C# documentation.
247 The Ring Game Engine is truly elegant and it's designer (s) deserve lots of credit for such an impressive bit of software."
250 "Strongly speaking, it is a strong and new game programming language."
253 "The language seems to have some interesting features, specially the use of braces to access object fields and methods."
256 "The code that implements the Ring VM actually looks quite nice. There is a bunch of test code -- great!"
257 , Peterfirefly (Reddit)
259 "Ring seems promising. It first appeared in 2016 although it's concept is older. It is meant to be portable and can be embedded in C/C++ projects"
260 , Wim ten Brink (Quora - Top Writer (2018))
262 "Interesting alternative to Lua."
263 , djxtc (Sourceforge)
265 "Ring is a serious thing in the programming language landscape. One should understand its foundation before she can shape an opinion worth considering. There are several innovations out-there with a clear commitment from its designer to simplicity, flexibility and learn-ability.
266 Natural language as its imagined by Ring opens a window for an unlimited set of applications otherwise impossible to think about. One can built an interactive chatbot based on a rich domain specific language in a matter of hours not months.
267 Combined with a smart yet effective implementation of a declarative programming paradigm, Ring empowers the creation of any kind of programming language on top of it, with any set of syntax. Even the language keywords can be overwritten to serve one's own keywords in any human language not only English.
268 Ring is a disruption, a big intellectual step forward but also a beautiful reincarnation of several legacy ideas and best practices from other old languages like Basic, Lisp and others. Those ideas are a humanity heritage that new visionaries like Mahmoud S. Fayed, the Ring designer, but also Rick Hickey, the Clojure designer, are trying to callback in todays world of complex programmability.
269 An other dimension of Ring, which formed one of its basic motivations, relates to visual programming. Software is a fluid and evolutionary creature and textual code is not accessible to the most of common humans. The promise of visual programming is to empower people, enhance understandability and invite business users to the arena of software development more intuitively. Ring was made by design with an objective of having a programming language capable of better supporting the visual paradigm.
270 Gamification is a first-class citizen in the language. This is a tremendous advantage compared to other general-purpose programming languages. Ring supports a large number of gaming libraries and open a large window of capabilities to use, not only in gaming but also in business and education applications.
271 The best way to assessing the power of Ring is to looking into it and reflecting about the number of problems it is capable to solve."
272 , Mansour Ayouni (Tunisia)
274 "I have only known ring-lang for few weeks, really love features and visions of ring: bracket access, class region, declarative and natural programming.
275 It's simple and beautiful the way ring deal with these paradigms. I think it's really great work what you're done, and doing.
276 I want to develop ethereum client in ring language, not only but it's style. It'll have natural and declarative code on it's main part.
277 Furthermore, It will be fantastic if there is "natural language -> evm bytecode" compiler, maybe ring have the solution"
280 "The language looks great!"
283 "You put a lot of work in the Ring and you're a great programmer
284 I saw your examples in 3D I've looked at part of your project, it's really great"
287 "Looks like a big project and an impressive piece of work"
288 , Rochus Keller (PhD From ETH Zurich, Switzerland)
291 pair: Applications developed in little hours; FetchStockData Application
293 FetchStockData Application
294 ==========================
296 URL : https://groups.google.com/forum/#!topic/ring-lang/-fa1U_SXSjo
298 Author : Bert Mariani
300 This App is written in Ring.
302 It will fetch stock data from Yahoo and draw various types of charts.
303 Any valid stock ticker can be entered, or selected from the drop down list - Select Symbol.
305 It will not guarantee that you make money in the stock market.
306 But it will visualize the history of the stock.
308 .. image:: getquotesmac.png
309 :alt: GetQuotesHistory on MacOS X
312 pair: Applications developed in little hours; Fifteen Puzzle Game 2
314 Fifteen Puzzle Game 2
315 =====================
317 URL : https://github.com/ring-lang/ring/blob/master/applications/fifteenpuzzle/CalmoSoftFifteenPuzzleGame.ring
319 Author : Gal Zsolt (CalmoSoft)
321 .. image:: fifteen2.png
322 :alt: Ring Application
325 pair: Applications developed in little hours; Google API Shortener Application
327 Google API Shortener Application
328 ================================
330 Author : John Storm (SienSystem)
334 Wanted to (finally) share a first release version of a small but very nice tool
335 to shorten urls using the Google shortener API. The code is fully documented,
336 maybe too documented, but, provides a good reference as to what is going on.
338 You can obtain your own API key, or you can use my key to test and use the tool.
340 Hope you enjoy the application. Please feel free to test at your convenience.
344 .. image:: urlappmacshot3.png
345 :alt: URLShortener - shot 3
349 .. image:: urlappmacshot4.png
350 :alt: URLShortener - shot 4
353 pair: Applications developed in little hours; Analog Clock
358 URL : https://github.com/ring-lang/ring/blob/master/applications/analogclock/AnalogClock-Image.ring
360 Author : Bert Mariani
362 .. image:: analogclock.png
363 :alt: Ring Application
366 pair: Applications developed in little hours; TicTacToe Game
371 URL : https://github.com/AbdelrahmanGIT/RingSamples/blob/master/src/TecTacToe.ring
373 Author : Abdelrahman Mohammed
375 .. image:: tictactoe.jpg
376 :alt: Ring Application
379 pair: Applications developed in little hours; Squares Puzzle Game
384 URL : https://github.com/MajdiSobain/RingAllegro_SquaresPuzzle
386 Author : Majdi Sobain
388 This project is about (Squares Puzzle) popular game that I have programmed using
389 ring language with its RingAllegro Library. The principle of this game is very known to all of us,
390 which is moving squares to get the real full shape of the original picture.
392 This game could be played using mouse and keyboard as well, showing a message of congratulations at the successful solving.
394 .. image:: ringapps_shot2.png
395 :alt: Ring Application
398 pair: Applications developed in little hours; Video-Music-Player Application
400 Video-Music-Player Application
401 ==============================
403 Author : Bert Mariani
407 .. image:: videomusicplayer.jpg
408 :alt: Video Music Player
412 pair: Applications developed in little hours; Calculator Application
414 Calculator Application
415 ======================
419 Updated Version by Gal Zsolt and Bert Mariani
423 .. image:: newcalc2.png
424 :alt: Ring Calculator
428 pair: Applications developed in little hours; Windows StartUp Manager Application
430 Windows StartUp Manager Application
431 ===================================
433 URL : https://github.com/ring-lang/WinStartupManager
435 Author : Majdi Sobain
437 Windows Startup Manager is an application that has the ability to let
438 the user control what programs should start at Windows booting time.
439 It gives you the ability to show, edit, delete, or even add new programs
440 entries to be lunched at Windows booting time.
442 It is specialized at managing Windows startup entries that are stored in
443 Windows Registry only, but provides a quick option to edit programs
444 shortcuts type entries.
448 .. image:: winstartupman.jpg
449 :alt: Windows Startup Manager
452 pair: Applications developed in little hours; Werdy Application
457 URL : https://github.com/ring-lang/werdy
461 Quran application includes reading suras, searching and bookmarking.
463 The applcation is provided for Windows, Linux and Android.
465 .. image:: ringapps_shot1.png
468 :alt: Ring Application
472 pair: Applications developed in little hours; Samples in this book
477 The next samples are developed in little hours and we will introduce them through this book.
479 The next screen shot for he Ring Notepad application
481 .. image:: ringnotepad_screenshot.png
482 :alt: Ring Application
484 The next screen shot for the Cards Game
486 .. image:: ringapps_shot4.png
487 :alt: Ring Application
489 The next screen shot for the Cards Game (Android)
491 .. image:: ringqt_shot52.jpg
492 :alt: Ring Application
494 The next screen shot from the Web Development chapter
496 .. image:: ex24_2.jpg
497 :alt: Ring Application
499 The next screen shots for simple 2D Games that we will present in the Game Engine Chapter.
503 .. image:: starsfighter.png
506 :alt: Ring Application
508 Flappy Bird 3000 Game
510 .. image:: flappybird.png
513 :alt: Ring Application
517 .. image:: superman.png
520 :alt: Ring Application
522 The next screen shot for the TicTacToe 3D Game
526 .. image:: tictactoe3d.png
529 :alt: TicTacToe 3D Game
531 The next screen shot for the Gold Magic 800 Game
533 .. image:: gmshot3.png
538 pair: Applications developed in little hours; Innovative
543 The language comes with better support for Natural Language Programming and
544 Declarative Programming. The innovation comes in supporting these paradigms
545 with new practical techniques on the top of Object-Oriented Programming and
546 Functional Programming. No need to know anything about (Compilers and Parsing).
547 You get the language constructs ready for use to create domain-specific languages
548 in a fraction of time.
552 * Natural Language Programming Library :
553 https://www.codeproject.com/Articles/1200766/Using-the-Natural-Language-Programming-Library-NLP
555 * Natural Language Programming :
556 https://www.codeproject.com/Articles/1138605/Natural-Language-Programming-in-the-Ring-Programmi
558 * The Declarative Approach :
559 https://www.codeproject.com/Articles/1222105/The-declarative-approach-of-the-Ring-programming-l
561 * Syntax Flexibility :
562 https://www.codeproject.com/Articles/1137388/Syntax-Flexibility-in-the-Ring-Programming-Languag
564 * The Ring Programming Language :
565 https://www.codeproject.com/Articles/1089887/The-Ring-Programming-Language
568 .. image:: ringnatural.png
572 pair: Applications developed in little hours; Practical
577 Many of the Ring libraries (StdLib, WebLib, Natural Library, Games Engine, etc.) and
578 the Ring IDE (Ring Notepad, Form Designer, etc.) are written in the Ring language
579 itself. Ring is ready for use in production and increase the developers productivity.
581 Check the Form Designer source code :
582 https://github.com/ring-lang/ring/tree/master/applications/formdesigner
584 .. image:: ringformdesigner.png
585 :alt: Ring Form Designer
587 We can run the Form Designer as Android application!
589 .. image:: formdesignerandroid.png
590 :alt: Form Designer - Android