This is my first post on steem although I have steemit account >1 month ago ๐.
Forgive me if it's not easy/comfortable to read, overused emoji, and stray out of topic because I still exploring what writing style should I use ๐
Hello, my name is Wildan (with {nick|user}name DrSensor, cimenx, or wildan on many account ๐). Here I'm trying to challenge the status quo of IoT Development. Currently I build, file some issue, and doing PR to some OSS project in my spare time to make the IoT development easier and to exert my skill because my background are Electrical thingy related degree ๐, became Fulstack Developer for a year but doing Data Scientist related stuff during that time, then quit my job and been working on web development (freelancing and others) for a year (nice timing for webdev because opinion war between 3 web framework became more stable and clear). Exerting my previous skill is important for me that I'm afraid what I learn long time ago became dull and not usable (trends in tech stuff is unpredictable). Currently I semi-employed-or-not-whatever-you-call ๐, have some low income but lead a decent live (cheap living cost but healthy food) and luckily have decent internet connection (I'm serious because internet are the most expensive thing in my living cost budget ๐ข).
Back to topic, why I write on Steemit (or Busy.org if you read it on that) ?
Umm..sorry but I though the title have something related to IoT
Well, umm I just beginning to writing because it's near Ramadhan and I live in moeslim country which in that month I will receive less work (which mean less income ๐). If you are from west or europe you can think of it as Summer Break. Because of that I though to spend my time writing some article and development diary in here. Unlike StackOverflow which rate how valueable the content is by number of ๐/upvote, Steemit/Busy.org have some unique feature by showing how much your post in dollar (which is not real USD but can be estimated into real USD). And this can raise real condition (not just article or perception) which you propose some idea then it tend to be billion-dollar mistake.
Now let's talk about IoT development.
In the current state, you can build E-Commerce in 5 days alone but you can't build Smart Home in 1 week.
Well, of course, you can't, are you some kind of new superhuman that can build A HOME in 1 week
Sigh... I mean planting SMART...HOME...SYSTEM into your existing literally HOME... baka!
Back to topic, in the current state doing web development is easy not only because there is many content/tutorial for that but also many great tooling that exists in the ecosystem (thanks to many Open Source project). Let's list what we have now in Web Dev ecosystem.
Now in Front End development we have:
- some framework that decent and have mature enough based on Component Design Pattern
- live/hot reload. Change small portion of code and the result will be shown in less than seconds regardless how big/complex your codebase.
- Static, dynamic, and duck typing language. Choose what suits you well
- make/enforce consistent code style using linter. Useful when you are working on a team (importantly the linter is easy to install and sometimes integrated into the framework of choice)
- development can be framework and language agnostic thanks to WebComponent & WebAssembly (not many workplaces utilize this but it's there ready to be utilized)
- thousand library and hundred UI Components ready to use in many frameworks
- rich debugging tools, you can even do time travel debugging, event there is built in the debugger in any popular browser now
and Back End development we have:
- some backend framework has live/hot reload like feature. (it's called Hot Swap if you using Java Spring)
- many backend framework/lib became database agnostic
- thanks to microservice pattern and docker, backend code can be written in any language. (still needs DevOps guy to operate the infra)
- many tools for documenting, building, and inspecting API and data. (Swagger, GraphiQL, etc)
- Design Pattern agnostic. (some depends on the language that you use)
- currently, I can't find backend framework/lib that can do time travel debugging (like redux/vuex)
while in Embedded development (especially ยตC) we have:
- language agnostic but depend on specific devices. (microphyton, nodejs johnyfive, STM32F4DISC, etc)
- device agnostic but depend on language and abstraction layer. (C/C++, Arduino)
- nearly write once run anywhere can only be achieved using Arduino
- low productivity because no live/hot reload thing. (exception if using ZephyrOS)
- mostly concurrent programming can only be achieved if using RTOS by sacrificing signifant memory
Ok then, that's it for now (time to sleep ๐). I will continue it on the next post hoping it's not stray out of topic ๐. If there is some mistake or something to be added feel free to comment below ๐
.As a bonus here is some Sand Dune Cat in Britol Zoo
feel free to ask anything about me (anyone can ask me about my personal live but I will try to blur my answer ๐)