Welcome, Guest: Register On Nairaland / LOGIN! / Trending / Recent / NewStats: 3,152,482 members, 7,816,141 topics. Date: Friday, 03 May 2024 at 06:27 AM |
Nairaland Forum / Appcypher's Profile / Appcypher's Posts
Programming / Re: If There Is A Piece Of Code You'd Hang On Your Wall, What Would It Be? by appcypher: 2:06pm On Jan 06, 2017 |
Donald3d:If it's possible, why not? |
Programming / Re: Astro Programming Language 0.2 (indefinite release) by appcypher: 2:02pm On Jan 06, 2017 |
Craigston:Yes, I'm aware of D. We added UFCS to Astro and later found out that D and some other languages use it. And I actually don't hate C++. I just don't like how I have to keep a lot of wierdness in my brain to command the language successfully. In fact Astro's runtime is written in C++, but we had to replace the interpreter front-end with Python, because we were moving too slow with C++ version. We probably could use D for the backend, but then D is a managed language, it won't give us the ability to explicitly manage memory resources. Another language we are currently considering is Rust. For now tho, it's C++ for the runtime, Python for other things. 2 Likes |
Programming / Re: If There Is A Piece Of Code You'd Hang On Your Wall, What Would It Be? by appcypher: 1:45pm On Jan 06, 2017 |
Donald3d:Op said hang, not print. It is an homage to the 99 bottles of beer challenge |
Programming / Re: If There Is A Piece Of Code You'd Hang On Your Wall, What Would It Be? by appcypher: 12:52pm On Jan 06, 2017 |
Written in Astro let a, b, c, d, e, f = |
Programming / Re: Guys What Is A Hackathon? by appcypher: 11:59am On Jan 06, 2017 |
An event, typically lasting several days, in which a large number of people meet to engage in collaborative computer programming. 1 Like |
Programming / Re: Astro Programming Language 0.2 (indefinite release) by appcypher: 11:31am On Jan 06, 2017 |
Craigston:You are right. Astro is like a nephew to Julia. Astro borrows a good deal of Julia and Python Syntax but it also takes useful concepts from Scala, C#, CLOS, Ruby, Go, Java, etc. Infact there is a short list of where Astro borrowed certain concepts. Julia There are a lot of ideas that went into the design of the language. Some stayed, others were discarded, but we promise not to make Astro a complicated load of incoherent features like C++. But then C++ is a hi-perf systems language, so it has its own value. Astro goals have been changed several times over the year, cos we don't really have a niche target like most other languages. We just want a nice language that is easy to use and fast to run. But that sounds quite generic, as a result Astro has no concentrated target market. It's in the same camp with Swift. It can be used to write any piece of software, from a website down to an operating system. Of course, you'd need a native compiler implementation of Astro to write an operating system. As time goes on, we might find the niche we are looking for and stick to that. 2 Likes |
Programming / Re: Astro Programming Language 0.2 (indefinite release) by appcypher: 12:44am On Jan 06, 2017 |
-------------------------------------------------------------------------------------
|
Programming / Astro Programming Language 0.2 (indefinite release) by appcypher: 12:38am On Jan 06, 2017 |
I'm a co-developer of the Astro programming language, originally started by Nypro. Astro language specification has reached version 0.2, but no stable interpreter was written for it until recently due to the constant changes in syntax and semantics of the language. Now after a year of designing the language, we have managed to come up with an interpreter that is near completion (there are still lots of bugs to fix and changes to make) and as co-developer, I felt we need to start promoting the language. No production-ready language has made it out of Africa yet, but we hope to stop this unusual trend with the introduction of Astro. This thread will focus on providing information about Astro until its release. Astro's concise documentation can be found here. It's actually meant for the developers of the language, but since we don't have a proper documentation yet, it's the only place to get a grasp on how Astro syntax looks. The syntax is, however, not final yet, so we make sure we commit every change as they are made. Below are planned features and paradigms of the language (some are not yet implemented): - Procedural - Object-oriented - Fast Performance - First-class Functions (Anonymous Functions, Closures) - Anonymous Types - List Comprehension - Events - Generators - Concurrent Coroutines - Properties - Expression-oriented - Optional Typing - Union Types - Operator Overloading - Generics - Regex - Exception Handling - Multiple Inheritance - Multiple Dispatch - Unified Function Call Syntax - Unicode String Support - Unicode Identifiers - Algebraic Data Types and Pattern Matching - Type Inference - Package Manager - Meta Programming - AST Macros - Automatic Reference Counting (No tracing GC) Some of these things may not be familiar, but they are actually just big grammars for simple concepts. Unified Function Syntax Call, for example, simply means being able to use dot notation with ordinary functions. So play(music, 'backwards') Can be called using its first argument. music.play('backwards') Questions, comments, criticisms and suggestions are welcomed. Thanks for reading. UPDATE: A lot has changed about the language since the time of this post and Astro now adopts sem ver, so the version shown above is now incorrect as of this update. Syntax and implementation details have changed quite a bit too. 5 Likes 4 Shares |
Programming / Re: NGR, Nigeria First Made Programming Language by appcypher: 9:34pm On Jan 05, 2017 |
asalimpo:I don't know if you can get a hardcopy in Nigeria, but if you have the means, you can order one from Amazon. |
Programming / Re: NGR, Nigeria First Made Programming Language by appcypher: 6:51pm On Jan 05, 2017 |
asalimpo:I'm not the op of this thread. I'm thinking of starting another thread instead of hijacking this one. There are just two people working on this and none of us are CS grads. As for wiki or mailinglist, we don't have any yet, at least not until we make the interpreter public. And as for books to read, Dragon Book is staple, but it's quite large and can scare one away, i'm still not done with the book yet, I'm not even half way. My lang/compiler experience comes from a mixture of Dragon Book, videos, articles around the internet, scientific papers and experimenting with interpreters. About the syntax of the language, well I believe the reason you don't find it familiar is because I wrote it in idiomatic Astro. I could have written it in a similar way to Python. Something like this. type Person: Now, compare it with the Python version. The code is now clearer. But Astro is not Python, it has its own way of doing things idiomatically. And saying the syntax is not friendly is not true. You haven't even learnt Astro to assert that. Even Python has its idiomatic moments where a beginner won't have a clue what's going on. In fact, Astro is not really aimed at beginners. I believe picking up a new language isn't really meant to be straightforward and as familiar as already known language. You shouldn't expect to find the same syntax everywhere. I wonder what you have to say about Julia, Lisp, Haskell and Scala. To make the supposedly obfuscated idiomatic Astro code a bit clearer In Astro: - type (also class) declaration starts with the keyword 'type' type Person - variable declaration starts with the keyword 'let' let age = 26 - function declaration starts with the keyword 'func' func add(a, b): - rt means return - functions return their last expression automatically, so the function above can be reduced to: func add(a, b): a + b - brackets surrounding function arguments are optional add(2, 4) - in Astro, a type that defines its fields in its declaration is called 'constructor type'. - Such types declare a constructor and their fields at the same time. - so type Car(make, model) - can be expanded to type Car: |
Programming / Re: Just Totally Confuse Pls Help A Learner Here by appcypher: 1:25pm On Jan 05, 2017 |
mosefin19:Join a python group asap |
Programming / Re: NGR, Nigeria First Made Programming Language by appcypher: 11:12pm On Jan 04, 2017 |
asalimpo:A Kenyan dude wrote a scripting lang called Bracescript, but I can't find the source or documentation anywhere, so the credibility of that remains unknown. Astro is a movement that Africa can also do it. We are making sure that its not just a test language but a language ready for production and yes it will be open-source (which recent language isn't open-source anyway?). As for experiences, I will share some of them once Astro gets released. Here is another snippet of Astro / Python code PYTHON 3 ----------------------------------------------------------------------------- class Person: ASTRO 0.2 ----------------------------------------------------------------------------- type Person name, age This is not meant to show how concise or terse Astro's source can be, but to show that a statically typed language can also have the same expressiveness and script-feel of a dynamic language, with dynamic language features like duck typing. Astro also keeps the benefits of a static language which include the elimination of certain set of runtime errors that can only be detected with unit tests in dynamic languages. Also as a result of being statically-typed, Astro's interpreter tend to run faster. The Astro code above is 3 times faster than the Python version, and since Astro is a statically-typed language, this speed factor can grow even more with a JIT or native compiler implementation, but those are undertakings for the future. WASM is an intermediate representation currently being developed for the web. We believe so much in the connectivity and the ubiquity of the web, so we have plans to make Astro compile to wasm. Then it can join Javascript in its crusade. Of course, these are all just big talks now, so lets get the proof-of-concept interpreter out first and see where this indigenous language goes. |
Programming / Re: NGR, Nigeria First Made Programming Language by appcypher: 1:03am On Jan 04, 2017 |
I'm a co-developer of Pluto(now Astro) and I'm way too excited that I'm so eager to show some of the language syntax. Astro 0.2's interpreter is near completion and shows promise performance-wise. It's, on average, 2 times faster than Python. Yes, I know, everything is not about speed. But it's a nice thing to have nonetheless. I will give a brief description of Astro. Astro aims to be virtually ubiquitous with various compilation back-end targets like LLVM native, LLVM JIT, wasm, and bytecode interpreters. Its general goal, however, is to be expressive, flexible and fast. Astro relies heavily on Multiple dispatch and UFCS and consequently merges the divergent worlds of procedural and OOP programming. You will also find yourself typing idiomatic Astro much more quickly than in Python or Ruby. Astro type system is sophisticated so much that it feels like dynamic language even though it statically infers all probable types. The type inference is unlike Hindley-Milner techniques seen in Scala or Haskell and comes close to custom type inference algo found in Crystal. Here are some of the language features, some of which are not finalized or complete and may not make it to 0.2 release - Optional Typing - Lexical Scoping - Generics - First-class functions (higher-order function, closures, lambdas.) - Imperative - Object-oriented - Procedural - Expression-oriented - Operator Overloading - Multiple Dispatch - List Comprehension - Type Inference - Multiple Dispatch - Generators - Coroutines - Algebraic Data Types & Pattern Matching - UFCS - ... Astro is not really a simple language, and may not be suited for total beginners as much as Python. But once understood, a lot of things will viewed differently and done more concisely. This doesn't mean that the language is hard to grasp. It really isn't. We are also trying to make sure that the lang doesn't end up looking cryptic like Perl or becoming a load of incoherent baggage that is C++ . As for why Astro was created when there are dozens of production languages out there, and thousands of other toy languages still in gestation period in respective labs? Well, only Nypro can answer that question properly. For me it's fun, I learnt a lot. I hope it becomes mature enough and joins the group of other rapidly developing languages like Julia and Crystal. Astro is barely a year old and still under active development. It will be released to the public under an MIT license very soon. # Python 3 from sys import stdout ----------------------------------------------------------------------------------- # Astro 0.2 func area: |
Programming / Re: How To Say "Hello World" In Different Programming Languages by appcypher: 10:44am On Dec 28, 2016 |
Astro: println 'Hello, World!' |
Programming / Re: Why Always Web. by appcypher: 7:29pm On Dec 09, 2016 |
during my survey here programmers only focus on frontend and forget about the backend.Then ur survey is flawed. I do see a lot of back end topics here. Maybe not many, but they are not scarce. i notice we are good but not professionals in businessThis is a forum for discussion, you will see different personalities in a forum. A serious client should be reviewing a dev's portfolio, not how he called another person a chicken in a language war. Arguments happen all the time. Not just here in NL, but in foreign forums too. If someone's outburst is what a client is checking for, I don't think such client is serious about finding a dev. |
Programming / Re: Javathon Group : A Place Where Java And Python Developers Coexist by appcypher: 7:14am On Nov 28, 2016 |
If the group link doesn't work. Throw ur number here and I will add you up. I will try to always update the link tho. |
Programming / Javathon Group : A Place Where Java And Python Developers Coexist by appcypher: 2:17am On Nov 28, 2016 |
You are a Python newbie, perhaps an expert. Hop in here let's discuss python. Except this time you will be meeting the other Java devs. Java folks are equally welcomed to this group. Dynamic language meets static language. We can learn sth from each other. We can even reduce the rift between both language by living together. Making crossing from one language to the other easy. You can move from creating ur next android app (java) to developing a client's website (python). We don't have to hate each other. Both languages have sth to offer. Web dev: Python: - Django - Flask - Pyramid Java: - Java EE apis Desktop app dev: Python: - PyQT Java: - JavaFx - Swing Mobile app dev: Python: - Kivy Java: - Android Mobile app dev Game dev: Python: - Pygame - Unity(boo) Java: - Libgdx - Jogl Scientific dev: Python: - Numpy - SciPy - Anaconda Java: - JScience - EJML If you only know other languages, you are also welcome. Javascript, Julia, R, C, C++, Crystal, C#, Ruby, Haskell, Rust, Go, Fortran, BASIC(gerrarahia), Ada(??we might need to check ur age), lisp, erlang, D, Swift developers. We are all the same family. Sorry if I didn't mention ur fave lang. Just hop on the bus and let's ride together. One thing tho, for the newbies, this is not a tutoring group, but we'll sure guide you towards becoming better. If I sound fishy, maybe I am, maybe I'm not, who knows. GROUP LINK: chat.whatsapp..com/2neanjfKUPPGNHnOvGncfXb Let's create something beautiful, shall we? 1 Like |
Programming / Re: Is PHP Dying? by appcypher: 6:40pm On Nov 23, 2016 |
noibilism:Erm... but Python, Ruby, Lua are older than PHP, except maybe Ruby which was released the same year. 1 Like |
Programming / Re: Programming Languages: Worst Is Better by appcypher: 5:57am On Nov 08, 2016 |
asalimpo:PHP codebase might be larger (mostly due to legacy code), but it is definitely not more popular than python. I bet if PHP wasn't improving its syntax and consistencies, ppl will just drop it for better alternatives. PHP7 introduced more consistencies to the language. Apart from C++ which is a truly complicated language and still used in niche areas like game dev, I don't see how worst is better. 1 Like |
Programming / Re: The most popular programmer on Nairaland 2016 Edition by appcypher: 12:44am On Sep 21, 2016 |
I nominate myself appcypher |
Programming / Re: Let's Be Honest, The Number Of Programmers We Have In Nigeria Is Exagherrated by appcypher: 12:30am On Sep 21, 2016 |
*sighs* |
Programming / Re: I Still Can't Believe This Site Is Powered By Wordpress... Best So Far.. by appcypher: 4:56am On Sep 20, 2016 |
BL3zzY:The sites's problem is not one dimensional at all. Not only is it slow, it pushes a pop-up at you that you have no option of rejecting. WTF! Na by force to login or sign up. |
Programming / Re: Let's Be Honest, The Number Of Programmers We Have In Nigeria Is Exagherrated by appcypher: 4:37am On Sep 20, 2016 |
Random Guy in the Block. |
Gaming / Re: Lagos Based Car Driving Video Game- See Vid & Pics by appcypher: 12:46am On Sep 19, 2016 |
XketchDesigns:Bla..bla....bla. Create yours in 1 month. |
Phones / Re: Apple Fans React After Finally Getting Their Hands On Iphone7 by appcypher: 3:01pm On Sep 18, 2016 |
alezzy13:I was about to say that too. Their brains are quarter of what they are supposed to be. |
Gaming / Re: Lagos Based Car Driving Video Game- See Vid & Pics by appcypher: 2:53pm On Sep 18, 2016 |
XketchDesigns:Oh Oh, I would love to see you create something close to that after 1 month of learning Java or Python. Even if you create just a moving car without the environment, I will applaud you. Bloody civilians! Dem no sabi how to program, just to dey yarn gibberish. As for the game developer, I will tell him to look into shader development. His 3D models are not bad looking. But he needs to work more on the look of the materials, so they can look more realistic. Adding atmospherics like lens flare, fogs, goes a long way to improve the graphics. Chromatic abberation, skid marks. Lots of other improvements can be done. I will like to share the little I know about shaders to make this game look better. That is if you are using Unity game engine. Good luck! |
Programming / Re: How I Wished!!! by appcypher: 1:28pm On Sep 18, 2016 |
. |
Programming / Re: How I Wished!!! by appcypher: 1:28pm On Sep 18, 2016 |
I understand ur enthusiasm. Shutting down the internet for everybody else doesn't make sense. Internet is what makes the world a global village. |
Programming / Re: Video Game Developers Nigeria [artists/animators, Programmers, Sound People] by appcypher: 1:16pm On Sep 18, 2016 |
dueal:I admit I was mixing up cubic and quad bezier. If by vector graphics you mean using UVs, then that's exactly what my app is doing. UVs are the coords on a texture. Textures are not scalable, they show their flaws when you zoom on them too much. Why? because they use raster images. And that's what I've been saying all along. I use Spine. The images it allows are raster images. What it does, for a simple workflow, is use the images as texture to a quad, this is called texture mapping. And it passes that to the GPU to be rendered to the display.
|
Programming / Re: Video Game Developers Nigeria [artists/animators, Programmers, Sound People] by appcypher: 10:51pm On Sep 17, 2016 |
dueal:If you have used Illustrator/inkscape, you will notice, while creating a vector image, that each curve is provided with two handles. This allows for S-shaped curves. That's quadratic (has 4 control points). Even though a vector format can use cubic beziers (which I find easier to use BTW), they simply don't though. ai, svg, eps all use quad bezier. UbiArt is doing exactly what my app is going to do. They might have used vector graphics for some aspects, but the lush environments were texture (i.e. raster) based. Using raster images doesn't mean the animations have to be rigid or robotic. They can be deformed. All it takes is increasing the vertex count near areas of the texture where deformation will happen. So squash and stretch animation with an image is very possible. Check this interesting Spine FFD tutorial. https://www.youtube.com/watch?v=0Dd2M8XBTo0 And I can bet my last kobo that the mobile version of Rayman Jungle uses texture-based animations throughout. Vector-based animations are just too expensive to be throwing about on mobile. |
Programming / Re: Video Game Developers Nigeria [artists/animators, Programmers, Sound People] by appcypher: 8:30pm On Sep 17, 2016 |
dueal:I think I get what you are trying to say. The way you explained how a human biped will be created makes me assume that you are mixing stuffs up. In that case you are not talking about vector-graphics (and they don't use cubic beziers BTW. It's quadratic), you mean the use of just vertices and vertex colors to create a character. Even though they are scalable, the problem with that proposition is that you won't have as much details as a texture can provide. All those pixel-level details cannot be created with vertices. That will just be plain expensive. Let me just give you a simple breakdown of how the 2d skeletal system is supposed to work. - You import a series of raster images that make up the movable parts of your character. - You draw out bone gizmos on each image. - You control (rotate, translate or scale) the bone gizmos and use that to animate the images. - The series of animations are saved in a file. - The images are packed in a texture atlas. - Each image becomes a texture to a quad. And using the animation provided, each image is animated as appropriate. For a simple workflow like this, the vertex animation can be done on GPU. But its not always this simple. And using only vertex colors instead of textures might work for some low-detailed elements in the game. It is however not a replacement for textures. This is not just me coming up with stuffs. This how other 2D skeletal animation apps implement it. |
(Go Up)
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 Links: (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) Nairaland - Copyright © 2005 - 2024 Oluwaseun Osewa. All rights reserved. See How To Advertise. 97 |