Resources for novice developers?

I started following the SAFENet development a few months ago and back then I was really interested in learning the language that it is written in so I can understand how the SAFENet is built, but my initial forays into rust, using the Rust Programming Language ebook, were difficult. I couldn’t get a handle on it and eventually gave up. Today, I decided to poke at it again and discovered that there is a new version of the ebook, that leads with, “This book is written for a reader who already knows how to program in at least one programming language.”

So I started looking at other languages to learn first, ones with more resources out there for beginners, and eventually settled on Python and Ruby. They’re languages that are useful for some other things I’m involved in and will give me a broader skillset when building apps and such.

My question(s) for you, the SAFENet community, are the following:

  1. What language are SAFENet apps written in? (I assume Rust, but that may be erroneous.)

  2. What language are SAFENet websites written in? (I have experience with HTML and CSS, but I recall reading something about a different programming language for SAFENet sites.)

  3. What advice do you have for a complete novice looking to get into development with SAFENet (apps, sites, whatever)?

  4. What is there a need for that a novice can help with?

  5. What questions have I forgotten to ask?

This is a rather broad topic, I realize, but I didn’t see anything like it in other threads, and I feel like an aggregation of this information would be immensely useful for somebody who is interested in the project but doesn’t know where to start. Feel free to answer as many or as few of the questions as you like, and feel free to bring up things I may have overlooked.

Thanks.

5 Likes

The latest Dev update shows they are starting to make tools for C# if you know that. Exciting new development. link

3 Likes

Hello @RagingCitrusTree !

I suppose your main entry for developer ressource is : https://forum.safedev.org/ for now.

There you could first focus on :

and

And also :
http://docs.maidsafe.net/beaker-plugin-safe-app/

As for your questions, I will try :

Safe apps can be written in many languages , including Rust, c++, javascript… Most of the current documentation and published libraries are focusing on Javascript and Node.

Safe websites are HTML, CSS and javascript , basically. There are entries for webassembly and other oddities ( well, at least for me this is odd : )

I myself as a novice try to follow the dev forum that I linked higher, but also try to study the examples in the git repository : GitHub - maidsafe-archive/safe_examples: examples showcasing various features of the SAFE Network

Don’t hesitate to ask on the dev forum, there are nice people there , including core Maidsafe developpers, veteran web and apps writers, newcomers , but all willing to help !

9 Likes

Good answers above, particularly comprehensive from @nice.

I think a Python a good choice for learning, but if you want to build desktop apps and websites / web apps, JavaScript might be a better choice because it cuts across all those and is already catered for by MaidSafe: their ffi only supports JavaScript so far, and the API, safe_examples & tutorials all use JavaScript at this time. So for now there are a lot of hurdles to jump if you don’t use JavaScript, and none of them easy even for the seasoned developer.

The main downside IMO with JavaScript is that it is so widely used in so many different things, in different ways that it is a lot to get your head around. So if you just want to dabble, maybe Python once somebody has jumped those hurdles first, but until then or if you want to get your teeth into things, I’d say JavaScript. Be ready to be thoroughly confused by node, npm and a number of other things though - and ask rather than struggle on thinking this should be obvious. Generally it isn’t! :wink: The other fierce dragon you will need to fight early on is git/github, but with most of these things just carefully following instructions laid out by others will get you a long way, and you will pick up ever more nuggets of understanding as you go on if you persist.

For an editor I recommend Atom particularity for JavaScript but it also supports other languages very well (see post linked below for JavaScript and Atom).

One of the best ways to start is by looking at the code of others, and then trying to build and run it yourself, including uploading it to SAFEnetwork if it’s a Web App. Then making superficial changes, then an enhancement or two (reporting bugs and suggesting via github along the way), until you are ready to try something from scratch.

You will help at first by asking questions. More practical stuff will come later, first reporting bugs and suggesting changes, then maybe helping fix bugs etc. Good luck. :slight_smile:

Oh, and here’s that beginner’s post for JavaScript and Atom Editor:

3 Likes

As @happybeing points out, javascript is pretty much required at this stage if you want to play around with making something for SAFE. I am an experienced developer, but a n00b when it comes to javascript. My strategy was to start with a simple idea (safe://checklists), then start trying to build it. I started with trying to code my site without any integration to the SAFE network. Once it was working OK I then started to integrate the SAFE DOM API for data persistence. Looking at code of existing safe:// sites helps a lot in that regard.

Anyway, just know that at this stage we are all kind of breaking new ground. People are working on javascript libraries that will make it easier to interact with SAFE, so I’m looking forward to that. Others are also working on integration with other languages, including Python. So given time it will be a lot easier for anyone to jump in and get going, but for now expect some learning curve.

2 Likes