SlideShare a Scribd company logo
1 of 10
Download to read offline
Ring Documentation, Release 1.5.2
• const char *getdataBitsChangedEvent(void)
• const char *getdataTerminalReadyChangedEvent(void)
• const char *geterrorEvent(void)
• const char *getflowControlChangedEvent(void)
• const char *getparityChangedEvent(void)
• const char *getrequestToSendChangedEvent(void)
• const char *getstopBitsChangedEvent(void)
94.165 QSerialPortInfo Class
C++ Reference : http://doc.qt.io/qt-5/QSerialPortInfo.html
Parameters : void
• QString description(void)
• bool hasProductIdentifier(void)
• bool hasVendorIdentifier(void)
• bool isBusy(void)
• bool isNull(void)
• QString manufacturer(void)
• QString portName(void)
• quint16 productIdentifier(void)
• void swap(QSerialPortInfo other)
• QString systemLocation(void)
• quint16 vendorIdentifier(void)
94.166 QStringRef Class
C++ Reference : http://doc.qt.io/qt-5/QStringRef.html
Parameters : void
• QStringRef appendTo(QString * string)
• QChar at(int position)
• void clear(void)
• int compare(QString other, Qt::CaseSensitivity cs)
• int compare_2(QStringRef other, Qt::CaseSensitivity cs)
• int compare_3(QLatin1String other, Qt::CaseSensitivity cs)
• QChar * constData(void)
• bool contains(QString str, Qt::CaseSensitivity cs)
• bool contains_2(QChar ch, Qt::CaseSensitivity cs)
94.165. QSerialPortInfo Class 1695
Ring Documentation, Release 1.5.2
• bool contains_3(QStringRef str, Qt::CaseSensitivity cs)
• bool contains_4(QLatin1String str, Qt::CaseSensitivity cs)
• int count(void)
• int count_2(QString str, Qt::CaseSensitivity cs)
• int count_3(QChar ch, Qt::CaseSensitivity cs)
• int count_4(QStringRef str, Qt::CaseSensitivity cs)
• QChar * data(void)
• bool endsWith(QString str, Qt::CaseSensitivity cs)
• bool endsWith_2(QChar ch, Qt::CaseSensitivity cs)
• bool endsWith_3(QLatin1String str, Qt::CaseSensitivity cs)
• bool endsWith_4(QStringRef str, Qt::CaseSensitivity cs)
• int indexOf(QString str, int from, Qt::CaseSensitivity cs)
• int indexOf_2(QLatin1String str, int from, Qt::CaseSensitivity cs)
• int indexOf_3(QChar ch, int from, Qt::CaseSensitivity cs)
• int indexOf_4(QStringRef str, int from, Qt::CaseSensitivity cs)
• bool isEmpty(void)
• bool isNull(void)
• int lastIndexOf(QString str, int from, Qt::CaseSensitivity cs)
• int lastIndexOf_2(QChar ch, int from, Qt::CaseSensitivity cs)
• int lastIndexOf_3(QLatin1String str, int from, Qt::CaseSensitivity cs)
• int lastIndexOf_4(QStringRef str, int from, Qt::CaseSensitivity cs)
• int length(void)
• int localeAwareCompare(QString other)
• int localeAwareCompare_2(QStringRef other)
• int position(void)
• int size(void)
• bool startsWith(QString str, Qt::CaseSensitivity cs)
• bool startsWith_2(QLatin1String str, Qt::CaseSensitivity cs)
• bool startsWith_3(QStringRef str, Qt::CaseSensitivity cs)
• bool startsWith_4(QChar ch, Qt::CaseSensitivity cs)
• QString * string(void)
• QByteArray toLatin1(void)
• QByteArray toLocal8Bit(void)
• QString toString(void)
• QVector<uint> toUcs4(void)
• QByteArray toUtf8(void)
94.166. QStringRef Class 1696
Ring Documentation, Release 1.5.2
• QChar * unicode(void)
• int compare_4(QStringRef s1, QString s2, Qt::CaseSensitivity cs)
• int compare_5(QStringRef s1, QStringRef s2, Qt::CaseSensitivity cs)
• int compare_6(QStringRef s1, QLatin1String s2, Qt::CaseSensitivity cs)
• int localeAwareCompare_3(QStringRef s1, QString s2)
• int localeAwareCompare_4(QStringRef s1, QStringRef s2)
94.167 QMutex Class
C++ Reference : http://doc.qt.io/qt-5/QMutex.html
Parameters : QMutex::RecursionMode
• bool isRecursive(void)
• void lock(void)
• void unlock(void)
94.168 QMutexLocker Class
C++ Reference : http://doc.qt.io/qt-5/QMutexLocker.html
Parameters : QMutex *
• QMutex * mutex(void)
• void relock(void)
• void unlock(void)
94.169 QBuffer Class
C++ Reference : http://doc.qt.io/qt-5/QBuffer.html
Parameters : QObject *
Parent Class : QIODevice
• QByteArray buffer(void)
• QByteArray data(void)
• void setBuffer(QByteArray *byteArray)
• void setData(QByteArray data)
• void setData_2(char *data, int size)
94.167. QMutex Class 1697
Ring Documentation, Release 1.5.2
94.170 QBluetoothAddress Class
C++ Reference : http://doc.qt.io/qt-5/QBluetoothAddress.html
Parameters : void
• void clear(void)
• bool isNull(void)
• QString toString(void)
• quint64 toUInt64(void)
94.171 QBluetoothDeviceDiscoveryAgent Class
C++ Reference : http://doc.qt.io/qt-5/QBluetoothDeviceDiscoveryAgent.html
Parameters : QObject *
• QList<QBluetoothDeviceInfo> discoveredDevices(void)
• QBluetoothDeviceDiscoveryAgent::Error error(void)
• QString errorString(void)
• QBluetoothDeviceDiscoveryAgent::InquiryType inquiryType(void)
• bool isActive(void)
• void setInquiryType(QBluetoothDeviceDiscoveryAgent::InquiryType type)
• void start(void)
• void stop(void)
• void setcanceledEvent(const char *)
• void setdeviceDiscoveredEvent(const char *)
• void seterrorEvent(const char *)
• void setfinishedEvent(const char *)
• const char *getcanceledEvent(void)
• const char *getdeviceDiscoveredEvent(void)
• const char *geterrorEvent(void)
• const char *getfinishedEvent(void)
94.172 QBluetoothDeviceInfo Class
C++ Reference : http://doc.qt.io/qt-5/QBluetoothDeviceInfo.html
Parameters : void
• QBluetoothAddress address(void)
• bool isValid(void)
• QBluetoothDeviceInfo::MajorDeviceClass majorDeviceClass(void)
94.170. QBluetoothAddress Class 1698
Ring Documentation, Release 1.5.2
• quint8 minorDeviceClass(void)
• QString name(void)
• qint16 rssi(void)
• QBluetoothDeviceInfo::ServiceClasses serviceClasses(void)
• QList<QBluetoothUuid> serviceUuids(QBluetoothDeviceInfo::DataCompleteness *completeness)
• QBluetoothDeviceInfo::DataCompleteness serviceUuidsCompleteness(void)
• void setCached(bool cached)
• void setServiceUuids(QList<QBluetoothUuid> uuids, QBluetoothDeviceInfo::DataCompleteness complete-
ness)
94.173 QBluetoothHostInfo Class
C++ Reference : http://doc.qt.io/qt-5/QBluetoothHostInfo.html
Parameters : void
• QBluetoothAddress address(void)
• QString name(void)
• void setAddress(QBluetoothAddress address)
• void setName(QString name)
94.174 QBluetoothLocalDevice Class
C++ Reference : http://doc.qt.io/qt-5/QBluetoothLocalDevice.html
Parameters : QObject *
• QBluetoothAddress address(void)
94.173. QBluetoothHostInfo Class 1699
CHAPTER
NINETYFIVE
FREQUENTLY ASKED QUESTIONS (FAQ)
95.1 Why do we need Yet Another Programming Language (YAPL)?
The language comes with better support for Natural Language Programming and Declarative Programming. The inno-
vation comes in supporting these paradigms with new practical techniques on the top of Object-Oriented Programming
and Functional Programming. Ring provide the programmers with the tools required to build a Natural Language like
Supernova or Declarative Language like REBOL and QML without the need to know anything about (Compilers and
Parsing). You get the language constructs ready for use to create domain-specific languages in a fraction of time.
Check the Supernova programming language, In this language you can type (I want window and the window title is
hello world.) and it will create a GUI window with “Hello, World!” as the window title. When I created Supernova
language in 2010. I discovered that using the Natural Code can be (Like English without limits and we can get the
human language power in programming) but to implement that You need a new language that are
1. General Purpose
2. Practical
3. Can create Natural Languages very quickly.
So we can get a System that can increase ease of use and productivity to the maximum level.
Ring is the best language to do that. So I created Ring to achieve this goal.
Supernova was just a test for the idea. To get a near view about what are the Advantages and Disadvantages. After
testing the new ideas you provide something practical. So we have Ring after Supernova. A story that maybe similar
to having Python after ABC. Python avoid ABC problems but bring ABC advantages. Also Ring learn from Ruby and
ROR story. The language power could appears in Frameworks better than direct usage as a general purpose language.
Also Ring comes with a clear goal/motivation (Creating a new version of the PWCT Software) something learned
from designing the C language to create the Unix Operating System. You have a goal that direct you in each design
decision.
You will understand the value of our decisions once you start trying to solve the problem that we will use Ring to
solve. Could you enable any one in the world without knowledge about computer programming concepts to create very
powerful software? In science the answer is (Visual Programming) and (Natural Programming). In practical we still
away from switching to these paradigms without introducing other problems. Ring is designed to solve this problem.
It’s designed to provide Natural Programming in a practical way. And to create a powerful Visual Programming tool.
Ring is designed to be a new world of programming after 10 years of research in Visual Programming and Natural
Languages.
The Ring Programming Language (Compiler+VM) is developed 100% using Visual Programming without writing a
single line of code. I used my tool (Programming Without Coding Technology) to design everything and get the C
code generated for me. Advantages ?
1. More Faster
2. No Syntax Errors
1700
Ring Documentation, Release 1.5.2
3. Easy to understand and manage the code because the Abstraction level is more higher
4. No Critical Disadvantages because you can control everything as writing your code.
From my experience in using Visual Programming for 10 years and Natural Programming for 5 years I designed Ring
to move the knowledge to mainstream programmers by providing a practical language that support these ideas.
I agree that each programmer/developer has the freedom to form his opinions about any software including program-
ming languages. Ring is not an exception but you may miss the idea behind the language. It’s innovative and may
help you to think different about how to solve your problems. Maybe this is not clear to many programmers because
It’s practical language and includes many features known to programmers and when a programmer look at a language
he/she may think that nothing new because it’s familiar. I created Ring to solve problems in a different way. Where I
will start programming just by describing the software using new natural interfaces that I will implement later when
I move from the design stage to the implementation stage. (I don’t determine the time to switch between stages, You
are free to use Agile methods). Since Ring is a new language you have 3 options.
1. Just don’t care.
2. Think in the future of the language and help us if you understand the idea and want to contribute.
3. Wait and come back again in the future to use it.
Summary:
• Ring is designed based on a need to develop a new version of the PWCT software.
Once we finish PWCT 2.0 we will have good and large software developed using Ring.
• We will push Declarative and Natural paradigms many steps forward. Also in next versions
we have a plan to present a new paradigm for Network Programming and Concurrency. We tested this new paradigm
through simple prototypes during the last years and we will integrate it with Ring in Future releases.
95.2 Why Ring is weakly typed?
Because it’s more Natural, and Faster and this is important for the language goals. What comes first is what you want.
When you type “Print : ” + 5 , The String comes first then 5 will be converted to a String. while when you type 5 +
“10” The number comes first so “10” will be converted to 10. This help a lot to quickly convert between numbers and
strings using the same operator. If you want to prevent conversion (Write code that prevent conversion) In these cases
you will notice that what you are writing is less code (And can be removed).
Weakly Typed = Automatic Conversion and Automatic is Good Thing and is better than Manual if you know how to
use it correctly.
95.3 What are the advantages to using Ring over Lisp or Smalltalk?
Smalltalk and Lisp are GREAT languages. I like many of the concepts behind them but I’m sure that selecting the
right programming language is based on the problem and comes after the problem definition. I have a problem that I
want to solve and these GREAT languages are not ideal for this problem so I designed Ring.
When you design a new language, You can learn from the past but you must look forward and live in the Future. What
you know about Natural Programming maybe based on the Old Knowledge about the power of these paradigms in the
practical world and I agree with you but I see another techniques that can be applied to get this to work in practical.
What you miss about Natural Language is that they are Context Sensitive and this means we can use it and think
different about how we can express our ideas.
example : I want window contains 3 buttons.
95.2. Why Ring is weakly typed? 1701
Ring Documentation, Release 1.5.2
In one sentence I created 4 objects (The window and the three buttons) and added the buttons to the window. The idea
of Natural Programming is to get many things done like that.
95.4 Why Ring is largely focussed on UI creation?
Yes UI creation is one of the important things in the language features because it’s designed to create a visual pro-
gramming tool, But the language is a multi-paradigm language where we can select the programming paradigm based
on the problem.
95.5 Is Ring some sort of improvement over PHP?
Ring is not designed to replace PHP, Lua and/or Smalltalk. And Ring support for Declarative Programming and
Natural Language Programming is very innovative and much better than staying with Procedural, Object-Oriented and
Functional Languages. Ring see the future in programming without code (Using Natural Languages) and is designed
to support that.
95.6 What are the advantages to using Ring over native C or C++?
Ring provides a better way to mix between different programming paradigms in solving problems.
The different programming paradigms play well together in the same language.
1. It’s easy to switch from one programming paradigm to another one because the language constructs use similar
syntax for similar concepts.
2. The paradigms are provided to interact and used together in different layers in the software.
for example you can create a game engine using object-oriented programming but write the game code using declara-
tive programming or natural programming and behind the scene your declarative or natural code will use the object-
oriented classes.
3. Ring is very productive and natural programming language than C/C++ languages.
4. Ring is a dynamic language. We can generate and execute code during the runtime. We have dynamic typing
and weakly typed language for flexibility.
5. The Garbage collector is generational (escape analysis) and also use reference counting. it’s very fast and still
provide control to the programmer who can delete memory at any time.
6. Ring Compiler and Virtual Machine is just 15,000 lines of ANSI C code that can be compiled and used in any
platform.
7. You can use C/C++ libraries and Ring comes with code generator to create wrappers from C functions or C++
classes. so when you need more performance or when you need to use more libraries you can easily do that.
95.7 What is the difference between Ring and Python? And is Ring
Open Source?
Yes the language is Free Open Source (MIT license)
In general I like Python and Ruby but I was looking for a language more suitable for creating the next version of the
Programming Without Coding Technology (PWCT) software so I started the Ring design.
95.4. Why Ring is largely focussed on UI creation? 1702
Ring Documentation, Release 1.5.2
Some simple changes that matters for my goal are
1. Not case sensitive
2. The list index start from 1
3. You can call functions before definition
4. Don’t use Python syntax like (indentation, using self, :, pass & _)
5. Weakly typed (convert automatically between types based on context)
6. The programs follow simple and constant structure (Statements then functions then packages and classes)
7. Using the ‘=’ operator for assignment and for testing values
Critical changes are
1. Small Language : The Ring compiler + Virtual Machine = 15K lines of C code , the other 500K lines are related
to libraries and are optional when we go for using the language in C/C++ programs.
2. The Garbage collector : Uses Escape Analysis/Reference counting and give the programmer the ability to
determine when to delete memory using the assignment operator
3. Compact Syntax : Ring is not line sensitive, you don’t need to write ; or press ENTER to separate between
statements
4. Using { } to access the object then using the object attributes and methods directly
5. Natural Programming : It’s very easy to create natural interfaces using Ring based on OOP
6. Declarative Programming using Nested Structure
The Ring programming language is designed based on my experience from using many other languages like C, C++,
C#, Lua, PHP, Python, Ruby, Harbour, Basic and Supernova And the language comes with innovative features added
to achieve the language goal
• Applications programming language.
• Productivity and developing high quality solutions that can scale.
• Small and fast language that can be embedded in C/C++ projects.
• Simple language that can be used in education and introducing Compiler/VM concepts.
• General-Purpose language that can be used for creating domain-specific libraries, frameworks and tools.
• Practical language designed for creating the next version of the Programming Without Coding Technology
software.
95.8 What are the advantages to using Ring over Perl, PHP, Python
or Ruby?
1. Ring is New and Innovative. The language will let you think different about programming.
2. Ring is Smaller. (Lessons learned from the Lua language)
3. Ring is Simple. (Lessons learned from the BASIC and Clipper/Harbour languages)
4. Ring is more Natural. (Lessons learned from the Supernova language)
5. Ring is more Declarative. (Lessons learned from REBOL and QML languages)
6. Ring Implementation is Transparent, Visual and comes with Rich Features.
95.8. What are the advantages to using Ring over Perl, PHP, Python or Ruby? 1703
Ring Documentation, Release 1.5.2
95.9 What are the advantages to using Ring over Tcl or Lua?
1. Clean Code (More Natural)
2. More Features (A lot of useful programming paradigms)
95.10 What are the advantages to using Ring over C# or Java?
1. Compact Code (Clean and Natural), More Productivity and Flexibility.
2. Better support for Declarative Programming and Natural Programming
95.11 The documentation says functional programming is sup-
ported, but then this happens?
The question was about this code
f = func {
a = 42
return func { return a }
}
innerF = call f()
call innerF()
Output:
Using uninitialized variable : a In function _ring_anonymous_func_16601()
The Answer:
• It’s Anonymous Functions, i.e. Not Closures.
• Many developers asked about supporting Closures and during language development we may add new features
that doesn’t go against the language goals or sprite.
• You can use classes and objects when you want to merge between the state and functions to provide a clear
solution.
• You can use Lists and put the anonymous function inside the List then return the list that contains the state and
the function. Pass the list to the function when you use it.
• You can use eval() and substr() to add the variable value directly to the anonymous function before return.
• We protect you from other scopes when you define the function. In Ring we provided the Three Scopes Rule
where at each point you have only at maximum three scopes (Global, Object Scope and Local Scope).
• We don’t get everything from everywhere to be like others! We don’t need to do that. If we will think like that
then we will create a very complex language or we will save our time and use other languages.
• When you think about learning or studying a new language concentrate about (What is new?) and (What is
better in this language?) to know when to use it. Don’t compare a new language just released little months ago
with languages started many years ago and expect to find everything that you used to have.
• Each programming language miss features in other languages. The idea is not the Features. it’s the sprite and
ability behind all of the features together.
95.9. What are the advantages to using Ring over Tcl or Lua? 1704

More Related Content

What's hot

The Ring programming language version 1.5.4 book - Part 184 of 185
The Ring programming language version 1.5.4 book - Part 184 of 185The Ring programming language version 1.5.4 book - Part 184 of 185
The Ring programming language version 1.5.4 book - Part 184 of 185Mahmoud Samir Fayed
 
Dive into Pinkoi 2013
Dive into Pinkoi 2013Dive into Pinkoi 2013
Dive into Pinkoi 2013Mosky Liu
 
The Ring programming language version 1.10 book - Part 114 of 212
The Ring programming language version 1.10 book - Part 114 of 212The Ring programming language version 1.10 book - Part 114 of 212
The Ring programming language version 1.10 book - Part 114 of 212Mahmoud Samir Fayed
 
Learning Git with Workflows
Learning Git with WorkflowsLearning Git with Workflows
Learning Git with WorkflowsMosky Liu
 
The Ring programming language version 1.4.1 book - Part 28 of 31
The Ring programming language version 1.4.1 book - Part 28 of 31The Ring programming language version 1.4.1 book - Part 28 of 31
The Ring programming language version 1.4.1 book - Part 28 of 31Mahmoud Samir Fayed
 
The Ring programming language version 1.10 book - Part 116 of 212
The Ring programming language version 1.10 book - Part 116 of 212The Ring programming language version 1.10 book - Part 116 of 212
The Ring programming language version 1.10 book - Part 116 of 212Mahmoud Samir Fayed
 
The Ring programming language version 1.9 book - Part 111 of 210
The Ring programming language version 1.9 book - Part 111 of 210The Ring programming language version 1.9 book - Part 111 of 210
The Ring programming language version 1.9 book - Part 111 of 210Mahmoud Samir Fayed
 
The Ring programming language version 1.9 book - Part 108 of 210
The Ring programming language version 1.9 book - Part 108 of 210The Ring programming language version 1.9 book - Part 108 of 210
The Ring programming language version 1.9 book - Part 108 of 210Mahmoud Samir Fayed
 
Crossing the border with Qt: the i18n system
Crossing the border with Qt: the i18n systemCrossing the border with Qt: the i18n system
Crossing the border with Qt: the i18n systemDeveler S.r.l.
 
Crossing Abstraction Barriers When Debugging In Dynamic Languages
Crossing Abstraction Barriers When Debugging In Dynamic LanguagesCrossing Abstraction Barriers When Debugging In Dynamic Languages
Crossing Abstraction Barriers When Debugging In Dynamic LanguagesBastian Kruck
 
Necessitas - Qt on Android - from FSCONS 2011
Necessitas - Qt on Android - from FSCONS 2011Necessitas - Qt on Android - from FSCONS 2011
Necessitas - Qt on Android - from FSCONS 2011Johan Thelin
 
Cloud TiDB deep dive
Cloud TiDB deep diveCloud TiDB deep dive
Cloud TiDB deep dive臣 成
 
Aumentando a eficiência do Web Container usando chamadas Assíncronas
Aumentando a eficiência do Web Container usando chamadas Assíncronas Aumentando a eficiência do Web Container usando chamadas Assíncronas
Aumentando a eficiência do Web Container usando chamadas Assíncronas Rafael T. C. Soares (tuelho)
 
The Ring programming language version 1.10 book - Part 106 of 212
The Ring programming language version 1.10 book - Part 106 of 212The Ring programming language version 1.10 book - Part 106 of 212
The Ring programming language version 1.10 book - Part 106 of 212Mahmoud Samir Fayed
 
Using machine learning to predict temporal orientation of search engines’ que...
Using machine learning to predict temporal orientation of search engines’ que...Using machine learning to predict temporal orientation of search engines’ que...
Using machine learning to predict temporal orientation of search engines’ que...Michele Filannino
 
The Ring programming language version 1.6 book - Part 12 of 189
The Ring programming language version 1.6 book - Part 12 of 189The Ring programming language version 1.6 book - Part 12 of 189
The Ring programming language version 1.6 book - Part 12 of 189Mahmoud Samir Fayed
 
Scripting Your Qt Application
Scripting Your Qt ApplicationScripting Your Qt Application
Scripting Your Qt Applicationaccount inactive
 
Optimizing Performance in Qt-Based Applications
Optimizing Performance in Qt-Based ApplicationsOptimizing Performance in Qt-Based Applications
Optimizing Performance in Qt-Based Applicationsaccount inactive
 

What's hot (20)

The Ring programming language version 1.5.4 book - Part 184 of 185
The Ring programming language version 1.5.4 book - Part 184 of 185The Ring programming language version 1.5.4 book - Part 184 of 185
The Ring programming language version 1.5.4 book - Part 184 of 185
 
Dive into Pinkoi 2013
Dive into Pinkoi 2013Dive into Pinkoi 2013
Dive into Pinkoi 2013
 
The Ring programming language version 1.10 book - Part 114 of 212
The Ring programming language version 1.10 book - Part 114 of 212The Ring programming language version 1.10 book - Part 114 of 212
The Ring programming language version 1.10 book - Part 114 of 212
 
Learning Git with Workflows
Learning Git with WorkflowsLearning Git with Workflows
Learning Git with Workflows
 
The Ring programming language version 1.4.1 book - Part 28 of 31
The Ring programming language version 1.4.1 book - Part 28 of 31The Ring programming language version 1.4.1 book - Part 28 of 31
The Ring programming language version 1.4.1 book - Part 28 of 31
 
The Ring programming language version 1.10 book - Part 116 of 212
The Ring programming language version 1.10 book - Part 116 of 212The Ring programming language version 1.10 book - Part 116 of 212
The Ring programming language version 1.10 book - Part 116 of 212
 
The Ring programming language version 1.9 book - Part 111 of 210
The Ring programming language version 1.9 book - Part 111 of 210The Ring programming language version 1.9 book - Part 111 of 210
The Ring programming language version 1.9 book - Part 111 of 210
 
The Ring programming language version 1.9 book - Part 108 of 210
The Ring programming language version 1.9 book - Part 108 of 210The Ring programming language version 1.9 book - Part 108 of 210
The Ring programming language version 1.9 book - Part 108 of 210
 
Crossing the border with Qt: the i18n system
Crossing the border with Qt: the i18n systemCrossing the border with Qt: the i18n system
Crossing the border with Qt: the i18n system
 
Crossing Abstraction Barriers When Debugging In Dynamic Languages
Crossing Abstraction Barriers When Debugging In Dynamic LanguagesCrossing Abstraction Barriers When Debugging In Dynamic Languages
Crossing Abstraction Barriers When Debugging In Dynamic Languages
 
Necessitas - Qt on Android - from FSCONS 2011
Necessitas - Qt on Android - from FSCONS 2011Necessitas - Qt on Android - from FSCONS 2011
Necessitas - Qt on Android - from FSCONS 2011
 
Cloud TiDB deep dive
Cloud TiDB deep diveCloud TiDB deep dive
Cloud TiDB deep dive
 
Qt Workshop
Qt WorkshopQt Workshop
Qt Workshop
 
Aumentando a eficiência do Web Container usando chamadas Assíncronas
Aumentando a eficiência do Web Container usando chamadas Assíncronas Aumentando a eficiência do Web Container usando chamadas Assíncronas
Aumentando a eficiência do Web Container usando chamadas Assíncronas
 
The Ring programming language version 1.10 book - Part 106 of 212
The Ring programming language version 1.10 book - Part 106 of 212The Ring programming language version 1.10 book - Part 106 of 212
The Ring programming language version 1.10 book - Part 106 of 212
 
Using machine learning to predict temporal orientation of search engines’ que...
Using machine learning to predict temporal orientation of search engines’ que...Using machine learning to predict temporal orientation of search engines’ que...
Using machine learning to predict temporal orientation of search engines’ que...
 
Cross Platform Qt
Cross Platform QtCross Platform Qt
Cross Platform Qt
 
The Ring programming language version 1.6 book - Part 12 of 189
The Ring programming language version 1.6 book - Part 12 of 189The Ring programming language version 1.6 book - Part 12 of 189
The Ring programming language version 1.6 book - Part 12 of 189
 
Scripting Your Qt Application
Scripting Your Qt ApplicationScripting Your Qt Application
Scripting Your Qt Application
 
Optimizing Performance in Qt-Based Applications
Optimizing Performance in Qt-Based ApplicationsOptimizing Performance in Qt-Based Applications
Optimizing Performance in Qt-Based Applications
 

Similar to The Ring programming language version 1.5.2 book - Part 173 of 181

The Ring programming language version 1.8 book - Part 92 of 202
The Ring programming language version 1.8 book - Part 92 of 202The Ring programming language version 1.8 book - Part 92 of 202
The Ring programming language version 1.8 book - Part 92 of 202Mahmoud Samir Fayed
 
The Ring programming language version 1.5.1 book - Part 172 of 180
The Ring programming language version 1.5.1 book - Part 172 of 180 The Ring programming language version 1.5.1 book - Part 172 of 180
The Ring programming language version 1.5.1 book - Part 172 of 180 Mahmoud Samir Fayed
 
The Ring programming language version 1.9 book - Part 9 of 210
The Ring programming language version 1.9 book - Part 9 of 210The Ring programming language version 1.9 book - Part 9 of 210
The Ring programming language version 1.9 book - Part 9 of 210Mahmoud Samir Fayed
 
The Ring programming language version 1.5.2 book - Part 181 of 181
The Ring programming language version 1.5.2 book - Part 181 of 181The Ring programming language version 1.5.2 book - Part 181 of 181
The Ring programming language version 1.5.2 book - Part 181 of 181Mahmoud Samir Fayed
 
The Ring programming language version 1.7 book - Part 89 of 196
The Ring programming language version 1.7 book - Part 89 of 196The Ring programming language version 1.7 book - Part 89 of 196
The Ring programming language version 1.7 book - Part 89 of 196Mahmoud Samir Fayed
 
The Ring programming language version 1.5.3 book - Part 93 of 184
The Ring programming language version 1.5.3 book - Part 93 of 184The Ring programming language version 1.5.3 book - Part 93 of 184
The Ring programming language version 1.5.3 book - Part 93 of 184Mahmoud Samir Fayed
 
The Ring programming language version 1.5.3 book - Part 11 of 184
The Ring programming language version 1.5.3 book - Part 11 of 184The Ring programming language version 1.5.3 book - Part 11 of 184
The Ring programming language version 1.5.3 book - Part 11 of 184Mahmoud Samir Fayed
 
The Ring programming language version 1.10 book - Part 208 of 212
The Ring programming language version 1.10 book - Part 208 of 212The Ring programming language version 1.10 book - Part 208 of 212
The Ring programming language version 1.10 book - Part 208 of 212Mahmoud Samir Fayed
 
Qt for beginners part 1 overview and key concepts
Qt for beginners part 1   overview and key conceptsQt for beginners part 1   overview and key concepts
Qt for beginners part 1 overview and key conceptsICS
 
Swift and Kotlin Presentation
Swift and Kotlin PresentationSwift and Kotlin Presentation
Swift and Kotlin PresentationAndrzej Sitek
 
The Ring programming language version 1.10 book - Part 18 of 212
The Ring programming language version 1.10 book - Part 18 of 212The Ring programming language version 1.10 book - Part 18 of 212
The Ring programming language version 1.10 book - Part 18 of 212Mahmoud Samir Fayed
 
The Ring programming language version 1.8 book - Part 15 of 202
The Ring programming language version 1.8 book - Part 15 of 202The Ring programming language version 1.8 book - Part 15 of 202
The Ring programming language version 1.8 book - Part 15 of 202Mahmoud Samir Fayed
 
The Ring programming language version 1.10 book - Part 212 of 212
The Ring programming language version 1.10 book - Part 212 of 212The Ring programming language version 1.10 book - Part 212 of 212
The Ring programming language version 1.10 book - Part 212 of 212Mahmoud Samir Fayed
 
The Ring programming language version 1.9 book - Part 17 of 210
The Ring programming language version 1.9 book - Part 17 of 210The Ring programming language version 1.9 book - Part 17 of 210
The Ring programming language version 1.9 book - Part 17 of 210Mahmoud Samir Fayed
 
The Ring programming language version 1.5.3 book - Part 191 of 194
The Ring programming language version 1.5.3 book - Part 191 of 194The Ring programming language version 1.5.3 book - Part 191 of 194
The Ring programming language version 1.5.3 book - Part 191 of 194Mahmoud Samir Fayed
 
The Ring programming language version 1.5.3 book - Part 92 of 184
The Ring programming language version 1.5.3 book - Part 92 of 184The Ring programming language version 1.5.3 book - Part 92 of 184
The Ring programming language version 1.5.3 book - Part 92 of 184Mahmoud Samir Fayed
 
Server Side Swift
Server Side SwiftServer Side Swift
Server Side SwiftChad Moone
 
The Ring programming language version 1.4 book - Part 28 of 30
The Ring programming language version 1.4 book - Part 28 of 30The Ring programming language version 1.4 book - Part 28 of 30
The Ring programming language version 1.4 book - Part 28 of 30Mahmoud Samir Fayed
 
The Ring programming language version 1.8 book - Part 201 of 202
The Ring programming language version 1.8 book - Part 201 of 202The Ring programming language version 1.8 book - Part 201 of 202
The Ring programming language version 1.8 book - Part 201 of 202Mahmoud Samir Fayed
 
The Ring programming language version 1.8 book - Part 10 of 202
The Ring programming language version 1.8 book - Part 10 of 202The Ring programming language version 1.8 book - Part 10 of 202
The Ring programming language version 1.8 book - Part 10 of 202Mahmoud Samir Fayed
 

Similar to The Ring programming language version 1.5.2 book - Part 173 of 181 (20)

The Ring programming language version 1.8 book - Part 92 of 202
The Ring programming language version 1.8 book - Part 92 of 202The Ring programming language version 1.8 book - Part 92 of 202
The Ring programming language version 1.8 book - Part 92 of 202
 
The Ring programming language version 1.5.1 book - Part 172 of 180
The Ring programming language version 1.5.1 book - Part 172 of 180 The Ring programming language version 1.5.1 book - Part 172 of 180
The Ring programming language version 1.5.1 book - Part 172 of 180
 
The Ring programming language version 1.9 book - Part 9 of 210
The Ring programming language version 1.9 book - Part 9 of 210The Ring programming language version 1.9 book - Part 9 of 210
The Ring programming language version 1.9 book - Part 9 of 210
 
The Ring programming language version 1.5.2 book - Part 181 of 181
The Ring programming language version 1.5.2 book - Part 181 of 181The Ring programming language version 1.5.2 book - Part 181 of 181
The Ring programming language version 1.5.2 book - Part 181 of 181
 
The Ring programming language version 1.7 book - Part 89 of 196
The Ring programming language version 1.7 book - Part 89 of 196The Ring programming language version 1.7 book - Part 89 of 196
The Ring programming language version 1.7 book - Part 89 of 196
 
The Ring programming language version 1.5.3 book - Part 93 of 184
The Ring programming language version 1.5.3 book - Part 93 of 184The Ring programming language version 1.5.3 book - Part 93 of 184
The Ring programming language version 1.5.3 book - Part 93 of 184
 
The Ring programming language version 1.5.3 book - Part 11 of 184
The Ring programming language version 1.5.3 book - Part 11 of 184The Ring programming language version 1.5.3 book - Part 11 of 184
The Ring programming language version 1.5.3 book - Part 11 of 184
 
The Ring programming language version 1.10 book - Part 208 of 212
The Ring programming language version 1.10 book - Part 208 of 212The Ring programming language version 1.10 book - Part 208 of 212
The Ring programming language version 1.10 book - Part 208 of 212
 
Qt for beginners part 1 overview and key concepts
Qt for beginners part 1   overview and key conceptsQt for beginners part 1   overview and key concepts
Qt for beginners part 1 overview and key concepts
 
Swift and Kotlin Presentation
Swift and Kotlin PresentationSwift and Kotlin Presentation
Swift and Kotlin Presentation
 
The Ring programming language version 1.10 book - Part 18 of 212
The Ring programming language version 1.10 book - Part 18 of 212The Ring programming language version 1.10 book - Part 18 of 212
The Ring programming language version 1.10 book - Part 18 of 212
 
The Ring programming language version 1.8 book - Part 15 of 202
The Ring programming language version 1.8 book - Part 15 of 202The Ring programming language version 1.8 book - Part 15 of 202
The Ring programming language version 1.8 book - Part 15 of 202
 
The Ring programming language version 1.10 book - Part 212 of 212
The Ring programming language version 1.10 book - Part 212 of 212The Ring programming language version 1.10 book - Part 212 of 212
The Ring programming language version 1.10 book - Part 212 of 212
 
The Ring programming language version 1.9 book - Part 17 of 210
The Ring programming language version 1.9 book - Part 17 of 210The Ring programming language version 1.9 book - Part 17 of 210
The Ring programming language version 1.9 book - Part 17 of 210
 
The Ring programming language version 1.5.3 book - Part 191 of 194
The Ring programming language version 1.5.3 book - Part 191 of 194The Ring programming language version 1.5.3 book - Part 191 of 194
The Ring programming language version 1.5.3 book - Part 191 of 194
 
The Ring programming language version 1.5.3 book - Part 92 of 184
The Ring programming language version 1.5.3 book - Part 92 of 184The Ring programming language version 1.5.3 book - Part 92 of 184
The Ring programming language version 1.5.3 book - Part 92 of 184
 
Server Side Swift
Server Side SwiftServer Side Swift
Server Side Swift
 
The Ring programming language version 1.4 book - Part 28 of 30
The Ring programming language version 1.4 book - Part 28 of 30The Ring programming language version 1.4 book - Part 28 of 30
The Ring programming language version 1.4 book - Part 28 of 30
 
The Ring programming language version 1.8 book - Part 201 of 202
The Ring programming language version 1.8 book - Part 201 of 202The Ring programming language version 1.8 book - Part 201 of 202
The Ring programming language version 1.8 book - Part 201 of 202
 
The Ring programming language version 1.8 book - Part 10 of 202
The Ring programming language version 1.8 book - Part 10 of 202The Ring programming language version 1.8 book - Part 10 of 202
The Ring programming language version 1.8 book - Part 10 of 202
 

More from Mahmoud Samir Fayed

The Ring programming language version 1.10 book - Part 211 of 212
The Ring programming language version 1.10 book - Part 211 of 212The Ring programming language version 1.10 book - Part 211 of 212
The Ring programming language version 1.10 book - Part 211 of 212Mahmoud Samir Fayed
 
The Ring programming language version 1.10 book - Part 210 of 212
The Ring programming language version 1.10 book - Part 210 of 212The Ring programming language version 1.10 book - Part 210 of 212
The Ring programming language version 1.10 book - Part 210 of 212Mahmoud Samir Fayed
 
The Ring programming language version 1.10 book - Part 207 of 212
The Ring programming language version 1.10 book - Part 207 of 212The Ring programming language version 1.10 book - Part 207 of 212
The Ring programming language version 1.10 book - Part 207 of 212Mahmoud Samir Fayed
 
The Ring programming language version 1.10 book - Part 205 of 212
The Ring programming language version 1.10 book - Part 205 of 212The Ring programming language version 1.10 book - Part 205 of 212
The Ring programming language version 1.10 book - Part 205 of 212Mahmoud Samir Fayed
 
The Ring programming language version 1.10 book - Part 206 of 212
The Ring programming language version 1.10 book - Part 206 of 212The Ring programming language version 1.10 book - Part 206 of 212
The Ring programming language version 1.10 book - Part 206 of 212Mahmoud Samir Fayed
 
The Ring programming language version 1.10 book - Part 204 of 212
The Ring programming language version 1.10 book - Part 204 of 212The Ring programming language version 1.10 book - Part 204 of 212
The Ring programming language version 1.10 book - Part 204 of 212Mahmoud Samir Fayed
 
The Ring programming language version 1.10 book - Part 203 of 212
The Ring programming language version 1.10 book - Part 203 of 212The Ring programming language version 1.10 book - Part 203 of 212
The Ring programming language version 1.10 book - Part 203 of 212Mahmoud Samir Fayed
 
The Ring programming language version 1.10 book - Part 202 of 212
The Ring programming language version 1.10 book - Part 202 of 212The Ring programming language version 1.10 book - Part 202 of 212
The Ring programming language version 1.10 book - Part 202 of 212Mahmoud Samir Fayed
 
The Ring programming language version 1.10 book - Part 201 of 212
The Ring programming language version 1.10 book - Part 201 of 212The Ring programming language version 1.10 book - Part 201 of 212
The Ring programming language version 1.10 book - Part 201 of 212Mahmoud Samir Fayed
 
The Ring programming language version 1.10 book - Part 200 of 212
The Ring programming language version 1.10 book - Part 200 of 212The Ring programming language version 1.10 book - Part 200 of 212
The Ring programming language version 1.10 book - Part 200 of 212Mahmoud Samir Fayed
 
The Ring programming language version 1.10 book - Part 199 of 212
The Ring programming language version 1.10 book - Part 199 of 212The Ring programming language version 1.10 book - Part 199 of 212
The Ring programming language version 1.10 book - Part 199 of 212Mahmoud Samir Fayed
 
The Ring programming language version 1.10 book - Part 198 of 212
The Ring programming language version 1.10 book - Part 198 of 212The Ring programming language version 1.10 book - Part 198 of 212
The Ring programming language version 1.10 book - Part 198 of 212Mahmoud Samir Fayed
 
The Ring programming language version 1.10 book - Part 197 of 212
The Ring programming language version 1.10 book - Part 197 of 212The Ring programming language version 1.10 book - Part 197 of 212
The Ring programming language version 1.10 book - Part 197 of 212Mahmoud Samir Fayed
 
The Ring programming language version 1.10 book - Part 196 of 212
The Ring programming language version 1.10 book - Part 196 of 212The Ring programming language version 1.10 book - Part 196 of 212
The Ring programming language version 1.10 book - Part 196 of 212Mahmoud Samir Fayed
 
The Ring programming language version 1.10 book - Part 195 of 212
The Ring programming language version 1.10 book - Part 195 of 212The Ring programming language version 1.10 book - Part 195 of 212
The Ring programming language version 1.10 book - Part 195 of 212Mahmoud Samir Fayed
 
The Ring programming language version 1.10 book - Part 194 of 212
The Ring programming language version 1.10 book - Part 194 of 212The Ring programming language version 1.10 book - Part 194 of 212
The Ring programming language version 1.10 book - Part 194 of 212Mahmoud Samir Fayed
 
The Ring programming language version 1.10 book - Part 193 of 212
The Ring programming language version 1.10 book - Part 193 of 212The Ring programming language version 1.10 book - Part 193 of 212
The Ring programming language version 1.10 book - Part 193 of 212Mahmoud Samir Fayed
 
The Ring programming language version 1.10 book - Part 192 of 212
The Ring programming language version 1.10 book - Part 192 of 212The Ring programming language version 1.10 book - Part 192 of 212
The Ring programming language version 1.10 book - Part 192 of 212Mahmoud Samir Fayed
 
The Ring programming language version 1.10 book - Part 191 of 212
The Ring programming language version 1.10 book - Part 191 of 212The Ring programming language version 1.10 book - Part 191 of 212
The Ring programming language version 1.10 book - Part 191 of 212Mahmoud Samir Fayed
 
The Ring programming language version 1.10 book - Part 190 of 212
The Ring programming language version 1.10 book - Part 190 of 212The Ring programming language version 1.10 book - Part 190 of 212
The Ring programming language version 1.10 book - Part 190 of 212Mahmoud Samir Fayed
 

More from Mahmoud Samir Fayed (20)

The Ring programming language version 1.10 book - Part 211 of 212
The Ring programming language version 1.10 book - Part 211 of 212The Ring programming language version 1.10 book - Part 211 of 212
The Ring programming language version 1.10 book - Part 211 of 212
 
The Ring programming language version 1.10 book - Part 210 of 212
The Ring programming language version 1.10 book - Part 210 of 212The Ring programming language version 1.10 book - Part 210 of 212
The Ring programming language version 1.10 book - Part 210 of 212
 
The Ring programming language version 1.10 book - Part 207 of 212
The Ring programming language version 1.10 book - Part 207 of 212The Ring programming language version 1.10 book - Part 207 of 212
The Ring programming language version 1.10 book - Part 207 of 212
 
The Ring programming language version 1.10 book - Part 205 of 212
The Ring programming language version 1.10 book - Part 205 of 212The Ring programming language version 1.10 book - Part 205 of 212
The Ring programming language version 1.10 book - Part 205 of 212
 
The Ring programming language version 1.10 book - Part 206 of 212
The Ring programming language version 1.10 book - Part 206 of 212The Ring programming language version 1.10 book - Part 206 of 212
The Ring programming language version 1.10 book - Part 206 of 212
 
The Ring programming language version 1.10 book - Part 204 of 212
The Ring programming language version 1.10 book - Part 204 of 212The Ring programming language version 1.10 book - Part 204 of 212
The Ring programming language version 1.10 book - Part 204 of 212
 
The Ring programming language version 1.10 book - Part 203 of 212
The Ring programming language version 1.10 book - Part 203 of 212The Ring programming language version 1.10 book - Part 203 of 212
The Ring programming language version 1.10 book - Part 203 of 212
 
The Ring programming language version 1.10 book - Part 202 of 212
The Ring programming language version 1.10 book - Part 202 of 212The Ring programming language version 1.10 book - Part 202 of 212
The Ring programming language version 1.10 book - Part 202 of 212
 
The Ring programming language version 1.10 book - Part 201 of 212
The Ring programming language version 1.10 book - Part 201 of 212The Ring programming language version 1.10 book - Part 201 of 212
The Ring programming language version 1.10 book - Part 201 of 212
 
The Ring programming language version 1.10 book - Part 200 of 212
The Ring programming language version 1.10 book - Part 200 of 212The Ring programming language version 1.10 book - Part 200 of 212
The Ring programming language version 1.10 book - Part 200 of 212
 
The Ring programming language version 1.10 book - Part 199 of 212
The Ring programming language version 1.10 book - Part 199 of 212The Ring programming language version 1.10 book - Part 199 of 212
The Ring programming language version 1.10 book - Part 199 of 212
 
The Ring programming language version 1.10 book - Part 198 of 212
The Ring programming language version 1.10 book - Part 198 of 212The Ring programming language version 1.10 book - Part 198 of 212
The Ring programming language version 1.10 book - Part 198 of 212
 
The Ring programming language version 1.10 book - Part 197 of 212
The Ring programming language version 1.10 book - Part 197 of 212The Ring programming language version 1.10 book - Part 197 of 212
The Ring programming language version 1.10 book - Part 197 of 212
 
The Ring programming language version 1.10 book - Part 196 of 212
The Ring programming language version 1.10 book - Part 196 of 212The Ring programming language version 1.10 book - Part 196 of 212
The Ring programming language version 1.10 book - Part 196 of 212
 
The Ring programming language version 1.10 book - Part 195 of 212
The Ring programming language version 1.10 book - Part 195 of 212The Ring programming language version 1.10 book - Part 195 of 212
The Ring programming language version 1.10 book - Part 195 of 212
 
The Ring programming language version 1.10 book - Part 194 of 212
The Ring programming language version 1.10 book - Part 194 of 212The Ring programming language version 1.10 book - Part 194 of 212
The Ring programming language version 1.10 book - Part 194 of 212
 
The Ring programming language version 1.10 book - Part 193 of 212
The Ring programming language version 1.10 book - Part 193 of 212The Ring programming language version 1.10 book - Part 193 of 212
The Ring programming language version 1.10 book - Part 193 of 212
 
The Ring programming language version 1.10 book - Part 192 of 212
The Ring programming language version 1.10 book - Part 192 of 212The Ring programming language version 1.10 book - Part 192 of 212
The Ring programming language version 1.10 book - Part 192 of 212
 
The Ring programming language version 1.10 book - Part 191 of 212
The Ring programming language version 1.10 book - Part 191 of 212The Ring programming language version 1.10 book - Part 191 of 212
The Ring programming language version 1.10 book - Part 191 of 212
 
The Ring programming language version 1.10 book - Part 190 of 212
The Ring programming language version 1.10 book - Part 190 of 212The Ring programming language version 1.10 book - Part 190 of 212
The Ring programming language version 1.10 book - Part 190 of 212
 

Recently uploaded

Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Bhuvaneswari Subramani
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Design and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data ScienceDesign and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data SciencePaolo Missier
 
JavaScript Usage Statistics 2024 - The Ultimate Guide
JavaScript Usage Statistics 2024 - The Ultimate GuideJavaScript Usage Statistics 2024 - The Ultimate Guide
JavaScript Usage Statistics 2024 - The Ultimate GuidePixlogix Infotech
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMKumar Satyam
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
 
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...WSO2
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightSafe Software
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Less Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data PlatformLess Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data PlatformWSO2
 
Choreo: Empowering the Future of Enterprise Software Engineering
Choreo: Empowering the Future of Enterprise Software EngineeringChoreo: Empowering the Future of Enterprise Software Engineering
Choreo: Empowering the Future of Enterprise Software EngineeringWSO2
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Decarbonising Commercial Real Estate: The Role of Operational Performance
Decarbonising Commercial Real Estate: The Role of Operational PerformanceDecarbonising Commercial Real Estate: The Role of Operational Performance
Decarbonising Commercial Real Estate: The Role of Operational PerformanceIES VE
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
 

Recently uploaded (20)

Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Design and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data ScienceDesign and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data Science
 
JavaScript Usage Statistics 2024 - The Ultimate Guide
JavaScript Usage Statistics 2024 - The Ultimate GuideJavaScript Usage Statistics 2024 - The Ultimate Guide
JavaScript Usage Statistics 2024 - The Ultimate Guide
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDM
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and Insight
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Less Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data PlatformLess Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data Platform
 
Choreo: Empowering the Future of Enterprise Software Engineering
Choreo: Empowering the Future of Enterprise Software EngineeringChoreo: Empowering the Future of Enterprise Software Engineering
Choreo: Empowering the Future of Enterprise Software Engineering
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Decarbonising Commercial Real Estate: The Role of Operational Performance
Decarbonising Commercial Real Estate: The Role of Operational PerformanceDecarbonising Commercial Real Estate: The Role of Operational Performance
Decarbonising Commercial Real Estate: The Role of Operational Performance
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 

The Ring programming language version 1.5.2 book - Part 173 of 181

  • 1. Ring Documentation, Release 1.5.2 • const char *getdataBitsChangedEvent(void) • const char *getdataTerminalReadyChangedEvent(void) • const char *geterrorEvent(void) • const char *getflowControlChangedEvent(void) • const char *getparityChangedEvent(void) • const char *getrequestToSendChangedEvent(void) • const char *getstopBitsChangedEvent(void) 94.165 QSerialPortInfo Class C++ Reference : http://doc.qt.io/qt-5/QSerialPortInfo.html Parameters : void • QString description(void) • bool hasProductIdentifier(void) • bool hasVendorIdentifier(void) • bool isBusy(void) • bool isNull(void) • QString manufacturer(void) • QString portName(void) • quint16 productIdentifier(void) • void swap(QSerialPortInfo other) • QString systemLocation(void) • quint16 vendorIdentifier(void) 94.166 QStringRef Class C++ Reference : http://doc.qt.io/qt-5/QStringRef.html Parameters : void • QStringRef appendTo(QString * string) • QChar at(int position) • void clear(void) • int compare(QString other, Qt::CaseSensitivity cs) • int compare_2(QStringRef other, Qt::CaseSensitivity cs) • int compare_3(QLatin1String other, Qt::CaseSensitivity cs) • QChar * constData(void) • bool contains(QString str, Qt::CaseSensitivity cs) • bool contains_2(QChar ch, Qt::CaseSensitivity cs) 94.165. QSerialPortInfo Class 1695
  • 2. Ring Documentation, Release 1.5.2 • bool contains_3(QStringRef str, Qt::CaseSensitivity cs) • bool contains_4(QLatin1String str, Qt::CaseSensitivity cs) • int count(void) • int count_2(QString str, Qt::CaseSensitivity cs) • int count_3(QChar ch, Qt::CaseSensitivity cs) • int count_4(QStringRef str, Qt::CaseSensitivity cs) • QChar * data(void) • bool endsWith(QString str, Qt::CaseSensitivity cs) • bool endsWith_2(QChar ch, Qt::CaseSensitivity cs) • bool endsWith_3(QLatin1String str, Qt::CaseSensitivity cs) • bool endsWith_4(QStringRef str, Qt::CaseSensitivity cs) • int indexOf(QString str, int from, Qt::CaseSensitivity cs) • int indexOf_2(QLatin1String str, int from, Qt::CaseSensitivity cs) • int indexOf_3(QChar ch, int from, Qt::CaseSensitivity cs) • int indexOf_4(QStringRef str, int from, Qt::CaseSensitivity cs) • bool isEmpty(void) • bool isNull(void) • int lastIndexOf(QString str, int from, Qt::CaseSensitivity cs) • int lastIndexOf_2(QChar ch, int from, Qt::CaseSensitivity cs) • int lastIndexOf_3(QLatin1String str, int from, Qt::CaseSensitivity cs) • int lastIndexOf_4(QStringRef str, int from, Qt::CaseSensitivity cs) • int length(void) • int localeAwareCompare(QString other) • int localeAwareCompare_2(QStringRef other) • int position(void) • int size(void) • bool startsWith(QString str, Qt::CaseSensitivity cs) • bool startsWith_2(QLatin1String str, Qt::CaseSensitivity cs) • bool startsWith_3(QStringRef str, Qt::CaseSensitivity cs) • bool startsWith_4(QChar ch, Qt::CaseSensitivity cs) • QString * string(void) • QByteArray toLatin1(void) • QByteArray toLocal8Bit(void) • QString toString(void) • QVector<uint> toUcs4(void) • QByteArray toUtf8(void) 94.166. QStringRef Class 1696
  • 3. Ring Documentation, Release 1.5.2 • QChar * unicode(void) • int compare_4(QStringRef s1, QString s2, Qt::CaseSensitivity cs) • int compare_5(QStringRef s1, QStringRef s2, Qt::CaseSensitivity cs) • int compare_6(QStringRef s1, QLatin1String s2, Qt::CaseSensitivity cs) • int localeAwareCompare_3(QStringRef s1, QString s2) • int localeAwareCompare_4(QStringRef s1, QStringRef s2) 94.167 QMutex Class C++ Reference : http://doc.qt.io/qt-5/QMutex.html Parameters : QMutex::RecursionMode • bool isRecursive(void) • void lock(void) • void unlock(void) 94.168 QMutexLocker Class C++ Reference : http://doc.qt.io/qt-5/QMutexLocker.html Parameters : QMutex * • QMutex * mutex(void) • void relock(void) • void unlock(void) 94.169 QBuffer Class C++ Reference : http://doc.qt.io/qt-5/QBuffer.html Parameters : QObject * Parent Class : QIODevice • QByteArray buffer(void) • QByteArray data(void) • void setBuffer(QByteArray *byteArray) • void setData(QByteArray data) • void setData_2(char *data, int size) 94.167. QMutex Class 1697
  • 4. Ring Documentation, Release 1.5.2 94.170 QBluetoothAddress Class C++ Reference : http://doc.qt.io/qt-5/QBluetoothAddress.html Parameters : void • void clear(void) • bool isNull(void) • QString toString(void) • quint64 toUInt64(void) 94.171 QBluetoothDeviceDiscoveryAgent Class C++ Reference : http://doc.qt.io/qt-5/QBluetoothDeviceDiscoveryAgent.html Parameters : QObject * • QList<QBluetoothDeviceInfo> discoveredDevices(void) • QBluetoothDeviceDiscoveryAgent::Error error(void) • QString errorString(void) • QBluetoothDeviceDiscoveryAgent::InquiryType inquiryType(void) • bool isActive(void) • void setInquiryType(QBluetoothDeviceDiscoveryAgent::InquiryType type) • void start(void) • void stop(void) • void setcanceledEvent(const char *) • void setdeviceDiscoveredEvent(const char *) • void seterrorEvent(const char *) • void setfinishedEvent(const char *) • const char *getcanceledEvent(void) • const char *getdeviceDiscoveredEvent(void) • const char *geterrorEvent(void) • const char *getfinishedEvent(void) 94.172 QBluetoothDeviceInfo Class C++ Reference : http://doc.qt.io/qt-5/QBluetoothDeviceInfo.html Parameters : void • QBluetoothAddress address(void) • bool isValid(void) • QBluetoothDeviceInfo::MajorDeviceClass majorDeviceClass(void) 94.170. QBluetoothAddress Class 1698
  • 5. Ring Documentation, Release 1.5.2 • quint8 minorDeviceClass(void) • QString name(void) • qint16 rssi(void) • QBluetoothDeviceInfo::ServiceClasses serviceClasses(void) • QList<QBluetoothUuid> serviceUuids(QBluetoothDeviceInfo::DataCompleteness *completeness) • QBluetoothDeviceInfo::DataCompleteness serviceUuidsCompleteness(void) • void setCached(bool cached) • void setServiceUuids(QList<QBluetoothUuid> uuids, QBluetoothDeviceInfo::DataCompleteness complete- ness) 94.173 QBluetoothHostInfo Class C++ Reference : http://doc.qt.io/qt-5/QBluetoothHostInfo.html Parameters : void • QBluetoothAddress address(void) • QString name(void) • void setAddress(QBluetoothAddress address) • void setName(QString name) 94.174 QBluetoothLocalDevice Class C++ Reference : http://doc.qt.io/qt-5/QBluetoothLocalDevice.html Parameters : QObject * • QBluetoothAddress address(void) 94.173. QBluetoothHostInfo Class 1699
  • 6. CHAPTER NINETYFIVE FREQUENTLY ASKED QUESTIONS (FAQ) 95.1 Why do we need Yet Another Programming Language (YAPL)? The language comes with better support for Natural Language Programming and Declarative Programming. The inno- vation comes in supporting these paradigms with new practical techniques on the top of Object-Oriented Programming and Functional Programming. Ring provide the programmers with the tools required to build a Natural Language like Supernova or Declarative Language like REBOL and QML without the need to know anything about (Compilers and Parsing). You get the language constructs ready for use to create domain-specific languages in a fraction of time. Check the Supernova programming language, In this language you can type (I want window and the window title is hello world.) and it will create a GUI window with “Hello, World!” as the window title. When I created Supernova language in 2010. I discovered that using the Natural Code can be (Like English without limits and we can get the human language power in programming) but to implement that You need a new language that are 1. General Purpose 2. Practical 3. Can create Natural Languages very quickly. So we can get a System that can increase ease of use and productivity to the maximum level. Ring is the best language to do that. So I created Ring to achieve this goal. Supernova was just a test for the idea. To get a near view about what are the Advantages and Disadvantages. After testing the new ideas you provide something practical. So we have Ring after Supernova. A story that maybe similar to having Python after ABC. Python avoid ABC problems but bring ABC advantages. Also Ring learn from Ruby and ROR story. The language power could appears in Frameworks better than direct usage as a general purpose language. Also Ring comes with a clear goal/motivation (Creating a new version of the PWCT Software) something learned from designing the C language to create the Unix Operating System. You have a goal that direct you in each design decision. You will understand the value of our decisions once you start trying to solve the problem that we will use Ring to solve. Could you enable any one in the world without knowledge about computer programming concepts to create very powerful software? In science the answer is (Visual Programming) and (Natural Programming). In practical we still away from switching to these paradigms without introducing other problems. Ring is designed to solve this problem. It’s designed to provide Natural Programming in a practical way. And to create a powerful Visual Programming tool. Ring is designed to be a new world of programming after 10 years of research in Visual Programming and Natural Languages. The Ring Programming Language (Compiler+VM) is developed 100% using Visual Programming without writing a single line of code. I used my tool (Programming Without Coding Technology) to design everything and get the C code generated for me. Advantages ? 1. More Faster 2. No Syntax Errors 1700
  • 7. Ring Documentation, Release 1.5.2 3. Easy to understand and manage the code because the Abstraction level is more higher 4. No Critical Disadvantages because you can control everything as writing your code. From my experience in using Visual Programming for 10 years and Natural Programming for 5 years I designed Ring to move the knowledge to mainstream programmers by providing a practical language that support these ideas. I agree that each programmer/developer has the freedom to form his opinions about any software including program- ming languages. Ring is not an exception but you may miss the idea behind the language. It’s innovative and may help you to think different about how to solve your problems. Maybe this is not clear to many programmers because It’s practical language and includes many features known to programmers and when a programmer look at a language he/she may think that nothing new because it’s familiar. I created Ring to solve problems in a different way. Where I will start programming just by describing the software using new natural interfaces that I will implement later when I move from the design stage to the implementation stage. (I don’t determine the time to switch between stages, You are free to use Agile methods). Since Ring is a new language you have 3 options. 1. Just don’t care. 2. Think in the future of the language and help us if you understand the idea and want to contribute. 3. Wait and come back again in the future to use it. Summary: • Ring is designed based on a need to develop a new version of the PWCT software. Once we finish PWCT 2.0 we will have good and large software developed using Ring. • We will push Declarative and Natural paradigms many steps forward. Also in next versions we have a plan to present a new paradigm for Network Programming and Concurrency. We tested this new paradigm through simple prototypes during the last years and we will integrate it with Ring in Future releases. 95.2 Why Ring is weakly typed? Because it’s more Natural, and Faster and this is important for the language goals. What comes first is what you want. When you type “Print : ” + 5 , The String comes first then 5 will be converted to a String. while when you type 5 + “10” The number comes first so “10” will be converted to 10. This help a lot to quickly convert between numbers and strings using the same operator. If you want to prevent conversion (Write code that prevent conversion) In these cases you will notice that what you are writing is less code (And can be removed). Weakly Typed = Automatic Conversion and Automatic is Good Thing and is better than Manual if you know how to use it correctly. 95.3 What are the advantages to using Ring over Lisp or Smalltalk? Smalltalk and Lisp are GREAT languages. I like many of the concepts behind them but I’m sure that selecting the right programming language is based on the problem and comes after the problem definition. I have a problem that I want to solve and these GREAT languages are not ideal for this problem so I designed Ring. When you design a new language, You can learn from the past but you must look forward and live in the Future. What you know about Natural Programming maybe based on the Old Knowledge about the power of these paradigms in the practical world and I agree with you but I see another techniques that can be applied to get this to work in practical. What you miss about Natural Language is that they are Context Sensitive and this means we can use it and think different about how we can express our ideas. example : I want window contains 3 buttons. 95.2. Why Ring is weakly typed? 1701
  • 8. Ring Documentation, Release 1.5.2 In one sentence I created 4 objects (The window and the three buttons) and added the buttons to the window. The idea of Natural Programming is to get many things done like that. 95.4 Why Ring is largely focussed on UI creation? Yes UI creation is one of the important things in the language features because it’s designed to create a visual pro- gramming tool, But the language is a multi-paradigm language where we can select the programming paradigm based on the problem. 95.5 Is Ring some sort of improvement over PHP? Ring is not designed to replace PHP, Lua and/or Smalltalk. And Ring support for Declarative Programming and Natural Language Programming is very innovative and much better than staying with Procedural, Object-Oriented and Functional Languages. Ring see the future in programming without code (Using Natural Languages) and is designed to support that. 95.6 What are the advantages to using Ring over native C or C++? Ring provides a better way to mix between different programming paradigms in solving problems. The different programming paradigms play well together in the same language. 1. It’s easy to switch from one programming paradigm to another one because the language constructs use similar syntax for similar concepts. 2. The paradigms are provided to interact and used together in different layers in the software. for example you can create a game engine using object-oriented programming but write the game code using declara- tive programming or natural programming and behind the scene your declarative or natural code will use the object- oriented classes. 3. Ring is very productive and natural programming language than C/C++ languages. 4. Ring is a dynamic language. We can generate and execute code during the runtime. We have dynamic typing and weakly typed language for flexibility. 5. The Garbage collector is generational (escape analysis) and also use reference counting. it’s very fast and still provide control to the programmer who can delete memory at any time. 6. Ring Compiler and Virtual Machine is just 15,000 lines of ANSI C code that can be compiled and used in any platform. 7. You can use C/C++ libraries and Ring comes with code generator to create wrappers from C functions or C++ classes. so when you need more performance or when you need to use more libraries you can easily do that. 95.7 What is the difference between Ring and Python? And is Ring Open Source? Yes the language is Free Open Source (MIT license) In general I like Python and Ruby but I was looking for a language more suitable for creating the next version of the Programming Without Coding Technology (PWCT) software so I started the Ring design. 95.4. Why Ring is largely focussed on UI creation? 1702
  • 9. Ring Documentation, Release 1.5.2 Some simple changes that matters for my goal are 1. Not case sensitive 2. The list index start from 1 3. You can call functions before definition 4. Don’t use Python syntax like (indentation, using self, :, pass & _) 5. Weakly typed (convert automatically between types based on context) 6. The programs follow simple and constant structure (Statements then functions then packages and classes) 7. Using the ‘=’ operator for assignment and for testing values Critical changes are 1. Small Language : The Ring compiler + Virtual Machine = 15K lines of C code , the other 500K lines are related to libraries and are optional when we go for using the language in C/C++ programs. 2. The Garbage collector : Uses Escape Analysis/Reference counting and give the programmer the ability to determine when to delete memory using the assignment operator 3. Compact Syntax : Ring is not line sensitive, you don’t need to write ; or press ENTER to separate between statements 4. Using { } to access the object then using the object attributes and methods directly 5. Natural Programming : It’s very easy to create natural interfaces using Ring based on OOP 6. Declarative Programming using Nested Structure The Ring programming language is designed based on my experience from using many other languages like C, C++, C#, Lua, PHP, Python, Ruby, Harbour, Basic and Supernova And the language comes with innovative features added to achieve the language goal • Applications programming language. • Productivity and developing high quality solutions that can scale. • Small and fast language that can be embedded in C/C++ projects. • Simple language that can be used in education and introducing Compiler/VM concepts. • General-Purpose language that can be used for creating domain-specific libraries, frameworks and tools. • Practical language designed for creating the next version of the Programming Without Coding Technology software. 95.8 What are the advantages to using Ring over Perl, PHP, Python or Ruby? 1. Ring is New and Innovative. The language will let you think different about programming. 2. Ring is Smaller. (Lessons learned from the Lua language) 3. Ring is Simple. (Lessons learned from the BASIC and Clipper/Harbour languages) 4. Ring is more Natural. (Lessons learned from the Supernova language) 5. Ring is more Declarative. (Lessons learned from REBOL and QML languages) 6. Ring Implementation is Transparent, Visual and comes with Rich Features. 95.8. What are the advantages to using Ring over Perl, PHP, Python or Ruby? 1703
  • 10. Ring Documentation, Release 1.5.2 95.9 What are the advantages to using Ring over Tcl or Lua? 1. Clean Code (More Natural) 2. More Features (A lot of useful programming paradigms) 95.10 What are the advantages to using Ring over C# or Java? 1. Compact Code (Clean and Natural), More Productivity and Flexibility. 2. Better support for Declarative Programming and Natural Programming 95.11 The documentation says functional programming is sup- ported, but then this happens? The question was about this code f = func { a = 42 return func { return a } } innerF = call f() call innerF() Output: Using uninitialized variable : a In function _ring_anonymous_func_16601() The Answer: • It’s Anonymous Functions, i.e. Not Closures. • Many developers asked about supporting Closures and during language development we may add new features that doesn’t go against the language goals or sprite. • You can use classes and objects when you want to merge between the state and functions to provide a clear solution. • You can use Lists and put the anonymous function inside the List then return the list that contains the state and the function. Pass the list to the function when you use it. • You can use eval() and substr() to add the variable value directly to the anonymous function before return. • We protect you from other scopes when you define the function. In Ring we provided the Three Scopes Rule where at each point you have only at maximum three scopes (Global, Object Scope and Local Scope). • We don’t get everything from everywhere to be like others! We don’t need to do that. If we will think like that then we will create a very complex language or we will save our time and use other languages. • When you think about learning or studying a new language concentrate about (What is new?) and (What is better in this language?) to know when to use it. Don’t compare a new language just released little months ago with languages started many years ago and expect to find everything that you used to have. • Each programming language miss features in other languages. The idea is not the Features. it’s the sprite and ability behind all of the features together. 95.9. What are the advantages to using Ring over Tcl or Lua? 1704