Modex Developer Toolshttps://blog.modex.tech/modex-developer-tools-423ba7d2d839As a rule, every developer uses a programming language. You can code in PhP, in Java, you can code in Java for mobile phones using Android, you can code in Objective C for iOS devices and so on. Many people, who are not necessarily developers or don’t have extensive technical knowledge, associate the developer with the language. It’s not like this. In order to code, a developer, needs — first and foremost — a text editor such as Notepad, Notepad ++ or even Word. A code editor, such as and IDE, offers more advantages compared to the ones previously mentioned. For instance, if I’m in a Java language and I use a chain of keywords such as “if”, “then” and other commands available in that language, that editor can highlight and inform you that a certain command doesn’t exist.
In addition, the work of a developer is more than an editor and a written code. He also needs to make a back a back-up of that code. When coding, saving your work often is not enough. As I progress through the saved versions, from 5 to 10, let’s say, I realize I’ve made a mistake. I then need to return to version 5 and start over. Therefore, I need some tools that allow me to save my work with a history of those saves so I can go back to a certain point (version 5) and take another approach. Or maybe I’d like to try 3–4 approaches just because I want to do this, wanting to see, in the end, which is best. Also, I need that code to be saved forever. Today, taking into account the high costs that developers require, it’s very risky for a developer to work for 2 days, then lose that code due to certain reasons. In most cases, the recovery is easy, but even so, you won’t be getting back the lost time. And that translates into wasted money.
There are, of course, some instances where you can’t redo that code or you redo it, but not as good as the first time. The idea is to rely on some automated tools which give me the possibility to access a certain version from a saved version, but also go to a certain repository where I can save stuff. Moreover, writing code in just one app is not at all recommended. Currently, you can’t write an app without using other elements that have already been written. We progress by re-using things, not by having developers write 7 times over the same thing. Otherwise, we won’t get anywhere and you wouldn’t be able to code at this pace.
When the idea of reusing things pops up, you don’t reuse only what your colleagues have written, but the entire elements written by a community. In a scenario with 3–4 people, it would be very easy for us to understand what the others have written. Some procedures would be made, internally, and — given that it would be a small team, with its own internal processes — things would go smoothly. This would work for us. But when we’re speaking about a community, you can’t apply things which are valid only for a small group. In this case, there’s a need for some standards to be put in place and some tools that offer the possibility of everyone reusing the code. These are also called “libraries”, they have different names.
For instance, if I’ve created a functionality for additions of high numbers, I’ve started writing, I’ve coded as much as I needed to. I had some tools which allowed me to insert the source code, then some other developers want to join the process so they also write something, update something, correct something and so on. After many contributions and utilizations — that’s how problems also surface — when people are using the library and come up with suggestions / changes, we then have robust libraries. That means they are used often, people see that they’ve been used by 50–100 people, so now they looks very good, production ready. You know it works. Without a mechanism through which all developers are able to do this, without too much of a hassle, we wouldn’t have been able to reach the progress we’ve reached today. Today we find lots of libraries (A, B, C, D) for lots of things, libraries that we’re using, various drivers and the list could go on. In 99.99% of the cases, these libraries are good, tested and robust, so you know you can rely on them. This download mechanism of libraries heavily used is another essential element for developers.
Furthermore, when I’ve started writing a code and I’ve used that library, as well as other libraries and so on, there are also several small programs which help me accomplish certain tasks such as: compiling, creating a build, etc. Usually, these are part of a developer’s working environment. The possibility to integrate IDE with a source repository, a saving or versioning mechanism (GIT, for instance), the ability to integrate the editor with some repositories in order to download, in real time, libraries I need or to push a changed code in certain libraries, compiling or deploying programs — all these tools are part of a developer’s everyday life.
When it comes to blockchain — Ethereum, especially — developers rely on the programming language in which they code a smart contract: Solidity. Initially, Solidity was created as a programming language, then there was also available a tool with which you could compile a smart contract you’ve written in Solidity and that’s pretty much all you’ve got on hand when it comes to Solidity code. Online, there’s also Remix, a Solidity editor, but for the moment it’s not as good as it should be. In developing Modex Marketplace, we also had a look at it, but it needs perfecting.
Currently, there is no developer environment focused on developing blockchain apps, more precisely Solidity and Smart Contract Ethereum. To clarify that: there’s no decent editor — and I’m not referring to one built-in browser. The browser has its limitations and was not created as a development tool (to write code), but to browse the Internet. Moreover, there’s no integration of that editor with various Testnet. If I wanted, right now, to program in Solidity, I would need a very good editor, a dedicated environment to produce a highlight of various syntaxes from Solidity, an environment which connects by default to Testnet (Ropsten, Rinkeby) and allows me to make real-time deployment, to test without having to go from one place to another. This editor should allow me to access a repository specifically aimed at blockchain developments — not necessarily GitHub, where everyone has all types of codes.
All these mechanisms for writing, testing, and verifying a code, then deploying it into a test or live network don’t exist, at the moment. Coming back to Modex, we should take into account that the majority of products (smart contracts) which will be uploaded on the Marketplace will be uploaded by developers. I believe there’s no real ending to this product as long as there are no real tools for developers. Let’s say that I’m a developer and I’d like to start coding so that tomorrow I upload something on the Marketplace, I might stop. Not because the Marketplace is not what it should be when it comes to selling smart contracts, but because I find it very hard to gain access to documentation, I don’t have a good editor or all the right tools that I need now.
On top of that, since there are no suitable environments at this time, I believe that this idea — of favoring the developer by creating these tools to develop apps and products for blockchain — is a super advantage that Modex brings to the industry. The Modex Developers Tools team aims to create such an environment — which includes IDE, Testnet, a testing and deploy mechanism — for developers who wish to code for blockchain, especially Ethereum smart contracts. So these developers will start with a Solidity IDE, integration with the compiler, some tools to test the code and see if it’s valid and has no security holes, with some tools to easily deploy the written code between the test and live net, some integrations with source repositories so that the written code can be integrated with a GitHub without making too many additional steps. The final step will be the publishing of all this work on Modex Marketplace, the on-line sales platform, so that the developer doesn’t need to go to the platform again to add code and tick all these mentioned steps.