|Join Nairaland / LOGIN! / Trending / Recent / New|
Stats: 1,845,968 members, 3,676,236 topics. Date: Sunday, 23 July 2017 at 09:51 AM
|Re: Astro Programming Language 0.2 (indefinite release) by Emmach10(m): 7:59pm On Jan 09|
appcypher:Hmm. So am among the public?
|Re: Astro Programming Language 0.2 (indefinite release) by Craigston: 8:13pm On Jan 09|
Emmach10:You're not on the development team. Wait for alpha/beta releases if you want to test things. Or you join the development team (whatever that may involve).
|Re: Astro Programming Language 0.2 (indefinite release) by Craigston: 9:33pm On Jan 09|
Will there be support for templates (function/class templates) and function overloading in Astro? I've found those features useful in C++ (well, templates may have performance overhead in execution time for an interpreted language, but they're powerful; will there be a way of compiling Astro?).
Will there be Perl-style regular expressions (like PCRE), or are you using a different regex engine?
I actually don't understand what
Algebraic data types are (they seem
to be related to functional
programming); can you help me
|Re: Astro Programming Language 0.2 (indefinite release) by appcypher: 10:46pm On Jan 09|
Craigston:Astro has generics, so yeah, you will get templates.
Astro has language-level support for PCRE just like Perl and Ruby.
The simplest way of putting Algebraic Data Types is probably seeing them as a combination of types to form other types. Kinda.
Addition = Number, Plus, Number
They usually come in handy when u are developing a DSL or some structured grammar.
|Re: Astro Programming Language 0.2 (indefinite release) by appcypher: 5:46pm On Jan 10|
We are changing Astro's concurrency model from goroutine-like to actor-like. We've not implemented the goroutine model yet, so we can still change the language a bit to better accomodate actor-style concurrency.
Major reason for this change is that goroutines don't handle error as well as actors.
I'm taking my time to properly understand how erlang or akka actors can make Astro a better, fault-tolerant language.
|Re: Astro Programming Language 0.2 (indefinite release) by asalimpo(m): 3:33am On Jan 11|
One of my current projects in on a small language to automate tasks for me. I've been hacking away on it for a some days/weeks. As tiny as it is, i've come up against some of the things i hear about in larger language designs : types, type inference, etc. I find it coincidental that a thread on language design came up at this time. It's consumed a lotta of my time and braincycles so i wonder how much gears have sparked in ur head designing yours. These things do chew up resources.
|Re: Astro Programming Language 0.2 (indefinite release) by Stconvict(m): 11:09am On Jan 11|
asalimpo:I'm Nypro and I'm the original designer of Astro. Appy told me to answer this question.
Designing Astro is an eye-opening adventure through a dense forest of exotic habitants. I think I complained on a similar thread once about the sleepness nights and developer's blocks I get from designing the language.
My goals for Astro, when it started, are wildly different from what they are now. Astro started as a simple project on a Whatsapp group, but sadly, everyone left the project, so I took it up on myself to make it a language I'd love to work in. Since my expectations from a language are quite heavy, Astro design took longer time than planned.
There are still a lot to learn, a lot to do, and a lot of expectations.
Designing and developing a language are definitely not easy.
I will like to know more about the language you are creating.
|Re: Astro Programming Language 0.2 (indefinite release) by asalimpo(m): 6:06pm On Jan 11|
Stconvict:Hey Nypro, good to meet you. The language i'm working on, is only a language in the sense that, variables can be created, functions can be invoked , decisions can be made ,if-else and looping thru collections can be performed. It's ultra tiny. It's syntax is very mundane and similar to any c,java programmer. no suprises.
It was written (still in progress) to get work done. So that i never have to spend more time writing the kind of code this language is designed to solve. It's unoptimized and i'm just using brute-force logic/thinking to put it together. I'll publish it here when i'm done. Compared to what you guys are working on, its a toy.
The typing is dynamic . It's hundred percent functional. u pass arguments to a function, invoke it, get a value. It's written from the point of view of the compiler/parser writer rather than the user. Because of this,
its syntax is a bit not too user friendly. e.g
no infix notation.
because, it's just cumbersome on the backend re organising things into <function> <args> format.
so the user just has to do manually from the get go.
That means, addition will be +(2,3,4,5) and not 2+3+4+5.
so the compiler can call function '+' and pass it arguments 2,3,4,5 - without needing to reorganized them
as would be the case if they were infix based.
Creating an extensible type system though is quite knotty.
It's things we take for granted when using languages but how does one hack it all together neatly?
The inheritance heirarchy of types has to be created and the type inferrer has to know how to intelligently
infer parent types from subtypes if the need be. abstract parent types have to created if need be.
All this things have to be done , just to get a little functional script to run!!! see work!!
But without this general groundwork it will not be possible make something generically usable!! AFAIK.
Why am i creating it? I want to automate some tasks and abstract the process generically enough that variations of such tasks can be addressed quickly whenever they arise. Hence this!
Maybe if i knew python, it wouldnt be necessary. But ...
|Re: Astro Programming Language 0.2 (indefinite release) by appcypher: 10:27pm On Jan 11|
asalimpo:Seems you want a simple language.
If there are just functions and variables and there won't be user-defined types, I don't think you need all extra complexities of a well-defined type system. You will need some form of type inference, but it won't be that complex if there are no user-defined types.
BTW, in Astro ur example can work both ways.
|Re: Astro Programming Language 0.2 (indefinite release) by appcypher: 11:26pm On Jan 11|
Renaming to Quadro.
Astro is taken.
|Re: Astro Programming Language 0.2 (indefinite release) by FincoApps(m): 9:49am On Jan 12|
I've been following this thread ever since you created it... just learning from the discussion and also admiring the intelligence displayed in the thread. (It's unlike Nigerians)
I was here today to respond to a comment that asked why people would use Astro.... My response would have been "personally because of the pretty name" but now it's been changed .
Great job on it by the way... I love how you agreed you are not sure of it's niche yet..... It's 100% normal... please go on with the great work
|Re: Astro Programming Language 0.2 (indefinite release) by appcypher: 10:54am On Jan 12|
FincoApps:Thanks for the following.
For now just consider Quadro a codename.
We will need to make more research into the language name before its release.
Astro was a good name, but it can't be used.
|Re: Astro Programming Language 0.2 (indefinite release) by asalimpo(m): 11:03am On Jan 12|
you're right. I have to keep it ultra simple, else i would have to justify why i didnt use python or some language out there to solve my problem.
|Re: Astro Programming Language 0.2 (indefinite release) by elfico(m): 7:52pm On Jan 12|
To say I am impressed is a highly exaggerated understatement.
Wow! This is really great.
If you can open source, it would be a really great motivation for Nigerian developers in particular and African in general.
Kudos and thumbs up.
PS: I better no let my people see this post, before them begin ask me wetin I go learn for school.
|Re: Astro Programming Language 0.2 (indefinite release) by ChinenyeN(m): 10:04pm On Jan 12|
I look forward to seeing and hearing more. Certainly, I look forward to playing around with this language once you release it.
I have found every bit of information in this thread useful. I am no where near embarking on this type of project, but I have thought about it for a while. I have been considering developing a language of my own. Not to solve any problems, but simply to understand what it takes. I have been spending my free time reading the ECMAscript specification to learn it and build my own crude implementation of it.
I will continue to follow this thread and any other information you might share about the development of the language.
|Re: Astro Programming Language 0.2 (indefinite release) by appcypher: 5:42pm On Jan 13|
We've been reworking the syntax of the language a bit to support Actor concurrency model natively.
If you need to know more about language that support actors natively, check out Erlang and Pony.
|Re: Astro Programming Language 0.2 (indefinite release) by asalimpo(m): 7:51pm On Jan 13|
Pony? Another programming language! Warris happening.
These things are just coming outta the woodwork!!
Elixir is the buzz now. It hasnt died down, Nim, i read of some months ago but forgot the name.
Now pony? Are these people just out to fragment the market or are we seeing a web storm of programming languages? I'm yet to even look up ceylon or kiln.
Anyway, as they say in boxing, *gbagaun, gbagaun <bell rings>* "May the best
Pony doesnt even have a wikipedia entry!!
I think some people have too much time on their hands, that's y , there's a new language everyday. Not that it's bad- but most of these languages barely have any kind of traction. They remain niche stuffs.
What's pony addressing that erlang didnt address? Concurrency? Erlang hit that on the head!!
|Re: Astro Programming Language 0.2 (indefinite release) by appcypher: 8:47pm On Jan 13|
asalimpo:The thing is there's always been a lot of languages. Most are niche, simple or exotic languages.
Nim, Julia, Pony, Kotlin, Ceylon, Elixir, Crystal, Jai, Quorum, etc are quite recent.
They all have reasons for being and the research into language design and development MUST NOT stop. They can't anyway. There is always someone out there who thinks he has a better idea how things can be done. And that's how innovation comes about. If language development was a passive area, we'd be stuck with old languages for years before some uprising occur.
Quorum is one of those languages that left me wondering how useful it can be in production. But then I realized how short-sighted I was for considering just my own criteria. Quorum, among other things, wants to make programming by speech easier, which will help blind people (for example) to program their own codes. Ideal or not, it's a new direction nonetheless.
Astro (I will call it that for now) came out of the necessity to create the first production-ready language from Africa.
There can't be too many languages. Why is that? Because one language cannot solve it all.
|Re: Astro Programming Language 0.2 (indefinite release) by asalimpo(m): 10:00pm On Jan 13|
appcypher:I think they can, but my opinion is of course subjective. There's really no objective criteria for measuring these things so i'll just approach it from my angle. Why are they so many languages? Because, programmers can create them. And because they can create them they will. Programmers have free will and will exercise them.
But some of these reasons are not weighty enough to justify a language.
Language x lacks features a programmer wants, so he goes ahead and creates his own! Is that sufficient reason? No. The feature required could be incorporated back into language x and language x will evolve.
older languages are evolving arent they? Sometimes the case is weighty enough that a solution, cannot be integrated into another,fine. E.g julia, it's as fast system languages like c,c++ (almost) and it gives the scientific community something to work with because prior to that they had to resort to c or fortran if they wanted better performance. Good enough.
The groan is great enough that it literally requires a change.
What of java vs c++ . Java introduced garbage collection as a mainstream language. Inbuilt networking libraries. It's impact was huge. It was a light and day diff. It made the adoption of java easier.
C# nko? java copycat. While microsoft could create c# because it had the resources to, It's existence wasnt a necessity. That it exists doesnt justify it's creation.
That many languages exist doesnt justify their creation except as works of art. Technical arts.
Or for intellectual stimulation of the creator.
What if microsoft instead of creating c# helped to invest in java, proposed their recommendations to java which was then incorporated into it? They'd be one less programming language on the planet.
The fact they're a plethora of programming languages doesnt mean that that is the way they need to be or that it's a good thing. Look at more established fields, you dont see such fragmentation. The fragmentation only exists in programming because the cost of doing so is low? (just a computer and so on).
Look at architecture, civil engineering, accounting, law etc - You dont see this.
So what did ceylon and kotlin bring to the table that made a light and day difference?
What did D bring that the next c++ standard couldnt have addressed?
Because Exerybody is doing it.
How many build tools do you need to build a java program? there used to be 1 now they're 3.
But how many operating systems do most people use - only 1. that one keeps evolving, getting better?
But the programming community isn't geared towards evolving what it has, no! They're obsoleting what they have in favour of new shiny things. As a matter of fact, people are expecting new languages to be released seasonally the way people expect the entertainment industry to churn out new movies etc. And the programming community is rising up to meet this demand.
|Re: Astro Programming Language 0.2 (indefinite release) by appcypher: 2:30pm On Jan 15|
asalimpo:Yes it is enough reason to create his programming language. As long as he has the capacity to. Not only will he learn more from it, his idea unprecedentedly become revolutionary.
The only language that I know that makes it easy to incorporate new features is Lisp. Other languages are not that accommodating without breaking some feature or backward compatibility. So one does not just add a feature to an existing language cos its cool, the design goals of the language may not allow it, and the original design could prevent such feature from fitting well with the language. Apart from that the community or the language creator may disapprove it.
So what do you do then? Kill the idea?
No you create yours!
C# nko? java copycat. While microsoft could create c# because it had the resources to, It's existence wasnt a necessity. That it exists doesnt justify it's creation.Well MS can't just start supporting another intellectual property, I don't think things work that way. Like I said before, new languages come up because old languages have design goals and cannot just change radically. They evolve and that evolution can take a long time. See generics for example, C# did it the right way. Java tried to evolve it into its syntax, and it feels awkward, even up till now. C# added a lot of useful features Java may never have, and it didn't shy away from dynamism and some useful C++ features like operator overloading.
The fact they're a plethora of programming languages doesnt mean that that is the way they need to be or that it's a good thing. Look at more established fields, you dont see such fragmentation. The fragmentation only exists in programming because the cost of doing so is low? (just a computer and so on).Is there a conceptual equivalence of programming language in other fields? I don't see the analogy here.
So what did ceylon and kotlin bring to the table that made a light and day difference?While I can go on and on about what some of these new languages bring to the table, instead I will touch on why they are needed and why they should continue.
The fragmentation you mentioned only exist among top tier languages. Newer languages only have little fraction of the audience or none at all
I don't think a programmer looks into language just cos it's new. There is a motive. The new language could have introduced something that could make his life easier, or he just finds the ideas interesting. Irrespective.
These research in language design and implementation should continue. Just like any other field the practical implementation of a concept is important. This is how we do it in computer science. We create new languages. If it works. Fine. If it doesn't, we move on and improve.
|Re: Astro Programming Language 0.2 (indefinite release) by asalimpo(m): 3:55pm On Jan 15|
language creation motivation is divided into three camps: motivation born out of noble cause and motivation borne out of self aggrandizement then motivation borne out of fun and pleasure.
e.g brainfuck - belongs to camp 3. But theyre other established fields apart from computing, though theyre not as dynamic as computing, yet they've been around a long time and have thrived. You dont see the kind of frivolity in them that you see in the programming arena. e.g a need to immortalize oneself by putting a name on a product. Which could be a language or framework etc. Creating a language is a major undertaking, one should weigh his priorities or what problems are most pressing in the field instead of churn out yet another language!
The glut of languages out there isnt really to address core problems but because the industry is encouraging a trendy spirit. Just like in the entertainment industry- i.e produce a new every season, month that would be short lived. The world has come to expect such of the entertainment industry and have remodelled their thinking to desire such expectations. e.g Most people are movie freaks, they visit the theatre every weekend.
The expect a new movie every week and they're enough movies to watch for an entire life time. They medicate on movies. To the programming field, such philosophy is bad and dangerous. But that's what's occuring. Infact, some developers get bored and itchy if they dont have any new toy to play with (read: language/framework). Why does software have to even evolve every single period (year/month/ week) is it fashion? Does mathematics evolve so rapidly? We're in a logical field but the field has been swayed to try to become trendy and hip like other fields/industry and so, the users(programmers) are forcing producers, to create artificial trendiness. They're always bugs, they're always shortcomings, no language is perfect but,
converting focus on solving deep knotty weightier untrendy problems into churning out a new thing every once in a while is bad thinking. Because the industry is so chaotic, it's hard for professionals to grow stable careers, they become outdated so quickly. But in other professions, there is some stability and with stability comes growth and maturity that's why professionals in other fields attract more respect than those in the I.T field. They're not busy upending their field with hip new toys.
I've never used c# before, so i dont have a perspective to compare it with java. Yet i know java works!
Lots of software have been written in it without all the touted c# feature.
Maybe after trying c# i may nod and say it's really cool, but would the benefits be heavy enough to up end java? No.
Some of the touted benefits of new languages are just not enough to warrant the cost of creating them.
Besides, distributing a c# program is a pain. A simple program generates so many files while in java, you could just pass around the source code and your done.
But like i said, it will continue because the material cost of doing so isnt much, apart from time and labour.
The cost of adoption isnt much either, to try a new car, you'd spend millions, to try a new language ,literally free.
We'll always have opinions though.
|Re: Astro Programming Language 0.2 (indefinite release) by appcypher: 6:21pm On Jan 15|
I can understand your position, but u didn't take note of what I said earlier. Why there is the need for new languages.
Old languages are reluctant to change. Everyone with a brilliant idea cannot just go into an old language and start tweaking it. One aspect that might need changing is the syntax, and once you start having that, you have yourself a new language.
And just like u said, the cost of adoption is free. Eventually it's the programmer that has the choice to adopt or not to adopt. I don't think there is any harm being done.
And saying language development proliferation is bad is somehow, since language development is a software engineering field. You can't say the development of software is too much, can you now?
And you mentioned established developers being out of touch due to rapid introduction of new languages. While that seem like a valid argument, it's not entirely factual. I can only count few new languages (less than a decade old) that have managed to get a sizable audience so far. And I won't say they have grown large or stable enough to displace any one's income.
And change is the only constant anyway. You have to move with the trend. There's nothing we can do about that, we are in a technological field.
|Re: Astro Programming Language 0.2 (indefinite release) by asalimpo(m): 7:25pm On Jan 15|
I think another way to look at programming language proliferation is to compare it to natural language evolution.
New words enter the english language, gets passed around , become buzz words, then slowly get displaced and die off. e.g books written even decades ago will be hard to digest because most words there are obsolete.
But there's no clear distinct point when a committee elected to make a word obsolete or coin new words.
It just seems to happen unconsciously, then it becomes widespread.
I think programming languages are behaving in the same manner. A new pops into the industries vocabulary.
Except that it takes a tonne of work to create a "buzz word" i.e a programming language,
than it takes to do so with natural languages.
|Re: Astro Programming Language 0.2 (indefinite release) by appcypher: 11:42am On Jan 18|
Some significant changes made to the language so far.
- Functions can now be included inside type definitions. We discovered it saves some time when typing methods within the same file as the type.
- Changing from a goroutine concurrency model, to an actor concurrency model. The initial attraction to goroutine model was its ease-of-use and cheapness, it does not, however make useful attempt to prevent race conditions or deadlocks. After looking into the implementations of actors in Scala's Akka and Pony, we feel it's the better way to go.
Astro (not actual name) will be released next week.
|Re: Astro Programming Language 0.2 (indefinite release) by appcypher: 7:17am On Jan 22|
Something unpleasant happened.
There will be a delay.
But we will be back.
|Re: Astro Programming Language 0.2 (indefinite release) by ChinenyeN(m): 12:03pm On Jan 22|
Keep us updated, if possible.
|Re: Astro Programming Language 0.2 (indefinite release) by Craigston: 12:51pm On Jan 22|
appcypher:Ouch! What went wrong? I was already thinking of wining with some developer friends to celebrate the first programming language out of Africa. Keep us updated please...
|Re: Astro Programming Language 0.2 (indefinite release) by ChinenyeN(m): 3:20am On Mar 19|
|Sections: politics (1) business autos (1) jobs (1) career education (1) romance computers phones travel sports fashion health |
religion celebs tv-movies music-radio literature webmasters programming techmarket
Nairaland - Copyright © 2005 - 2017 Oluwaseun Osewa. All rights reserved. See How To Advertise. 264