Introducing Frog, a language designed to meet the challenges of modern development.

Different, but familiar

Frog is a strongly-typed, object-oriented, functional language. Like most modern languages such as Java, C#, Swift and Python, Frog is inspired by the brilliance of C++.

 

Quicksort coded in...

Frog

A language designed for all skill levels

The ideal programming language grows with you as your skills grow. Frog is such a language.
For beginners, Frog removes common hurdles that interfere with conceptual learning. For instance, the editor prevents putting a class in a method. Frog's clean visual structure allows a beginner to focus more on concepts, and less on syntax. But Frog was not designed for beginners; its easy because it applies solid, fundamental principals in a new way.
For intermediate developers, Frog makes venturing into new places such as different OS platforms or parts of the software stack simpler because their skills travel with them. For example, a developer who has only done UI programming in Frog can venture into the back-end of the stack to learn web service development using the same language, type system and frameworks.
Frog was designed by hardcore developers to be a highly-capable language. Advanced developers will find Frog to be full of many of the robust features to which they have grown accustomed.

Can a visual language be taken seriously?

Ask a typewriter if a great novel can be written with a word processor.
Most intermediate and advanced developers have come in contact with a visual language, and have understandably concluded that they are basic in nature or fill a niche, but are not geared to general purpose programming.
But is it because they are visual or by design?
 
As far as we can tell, Frog defies all previous definitions of visual programming. First, it relies heavily on familiar textual coding because, well, text is awesome. Graphics are aptly utilized for constructs that are harder or impossible to represent in text, such as images, complex object literals, SQL arithmetic, collections, and type relationships, to name a handful.

Control the flow

All the common control flow keywords can be found such as if, else, while, switch, break and others. Frog is a graphical language, using visual constructs to shape the code as you type. You will never type a comma or semicolon again.

Introducing the nano

TM

The first of its kind, nano is a graphical widget that keeps identifier signatures neat and tidy. Frog nanos make child's play of editing complex identifiers, including multidimensional collections, foreign keys and laser-precise primitives.

Primitives aren't so primitive

The days of coding in a bubble are long gone. Most developers regularly interface with user interfaces, web services or databases.
Any time you work with externalities there is a good chance you have to deal with impedance mismatches.
 
Frog provides native support for all the data primitives you need to burst out of your bubble.

Aspects : your new best friend

TM

Most languages have something similar to what Frog knows as aspects but, gosh, you just won't believe we do with them. Frog aspects allow you to clearly define object ownership in an unprecedented way. For instance, a flex can morph at runtime between being an object or a pointer to an object.
Aspects are one of the reasons Frog never deals with garbage collection, memory loss or invalid pointers. In fact, the concept of creating an object with new, for instance, does not exist in Frog; it's a vestige of an older era.

Hello, world! ... literally

We have not met many who enjoy fiddling with cryptic text formats designed decades ago to say simple things. Word processors made the switch from text to graphic editing in the last millennium. Why haven't code editors? Consider the Java- and C#-like code below:
   print ("\"Hello, world! It\'s a beautiful day.\r\nDid you know \'\\\' is called a backslash?\"");
In Studio, jewels are mini visual editors that allow literals to be embedded directly in code. Literals can be primitives, such as strings and numbers, complex values such as gradient brushes and 3D models, or anything you can dream up.

Collect yourself

Collections exist in all facet of development. Still the richness of expressing complex relationships has been the domain of databases. Until now.
Frog brings amazing database concepts to you, to use in your day-to-day coding, such as relationships, indexing, transactions and cursors.
 
The good news is you likely know all the concepts already, but just don't know you do.
There are also SQL-like statements in Frog to query, join, insert, update and delete items.

Built-In data binding

UI Developers have long known the benefits of data binding. All popular languages have access to some form of data binding using a combination of a framework and IDE design tools. What if data binding was a language feature?

Controlled chaos

Asynchronous programming can be tough. Frog tames the chaos using mechanisms that let the compiler do the hard stuff, allowing your code to retain a logical structure that resembles synchronous code. 

Be the change you want to see

Most of the your favorite language features like events, listeners, interfaces, properties and casting are all in Frog, among many others. Best of all, the Frog language specification is not kept in a company safe or managed by a bureaucracy. You are always one click away from talking to the language designers.

Where you see enum, we see beauty

In Frog, enumerations are not a convenience, they are a star. You can use them in a traditional fashion, create custom types, or associate complex objects with each identifier. You can instantiate them so they are no longer confined to a single instance. And you can use them as constants, as most languages do, or as variables.

© 2019 Lesarde Inc.