five reasons why cold calling is crucial for achieving sales success.

Picking up the phone and dialing are the simplest things you can do. For seasoned sales development personnel, it comes naturally. You don’t need to devote hours or even days to create a single email…

Smartphone

独家优惠奖金 100% 高达 1 BTC + 180 免费旋转




2018 Year of Compiled Scripting Languages

For family reasons I was sorry to cancel my appearance and talk at Open West this year. Open West is a great conference, 100% open source! I really missed not being there — it is a smart attend for IT professionals (since Open Source is the smart choice:)

Since there is no video of me presenting (which I think is a terrible paradigm for absorbing information anyway), I am presenting my talk here. No fancy slides with dancing kittens — just straight to the point bullets and what would have been the verbal narration — frank and outspoken as always. Hope you learn something reading this.

Speaker Intro
John has a bunch of engineering degrees from top schools with his PhD focusing on expert and AI decision support systems and has a wide ranging career in the transportation industry, computer simulation modeling, and intelligent software. He has been an adjunct professor teaching C++ and Algorithms. John is a championship judge with the FIRST and VEX Robotics programs. He now writes several newsletters on intelligent technology and is starting up a new non-profit to create a free, open source, online tech learning and tech competition aimed at teaching young people robotics and programming in resource challenged (aka poor) areas of the world, especially in South America where he spends about half the year. If anyone would like to get involved, please contact us — we need the help!

Okay, lets get to it.

— — — — — — — — — — — — — — — — — — — — — — -
The Search For New Stack
* Speed (for AI)
* Ease of Programming (for students)
* Free Open Source

Our new tech learning site needed a good software stack for the website, for the robotic challenges, and for the teaching platform. Ruby Sinatra has been a mainstay in our web companies but the whole Ruby community has just not been there for AI and robotics (strange since Japan is the world leader in robots!). So we looked at other options which led to this talk. The idea here is to give an overview of some newer trending languages with our brief experience — benchmarks and detailed function comparisons are left to others.

— — — — — — — — — — — — — — — — — — — — — — -
Legacy Compiled Languages
* C, C++, D, Rust, Qt
* Fast
* Complicated, Hard To Learn

These languages have been around for a long time, proven, and the foundation of much technology. Well, maybe Rust is not so legacy but it is in the same close to the metal family. I have taught C++ to college sophmores — it was hard for them, especially memory management. And it is hard for professionals too. C is worse. It’s complicated and easy to have bugs. Because they are hard, it is less productive — and hard for the MVP world. Certainly very difficult for young students. There is a reason much of the development community shifted to scripting languages. We are somewhat impressed with Robot C but it is proprietary. No FOSS == No Thank you.

— — — — — — — — — — — — — — — — — — — — — — -
Advantages of Compilation
* Small Binary Size (generally)
* Easy to Distribute
* More Tamper Proof
* Fast

Of course, compiled languages have some big advantages. For the same platform, a binary can just be copied. For different platforms the source can be copied and just recompiled. Binaries make it easier for students to have the “right” code on their robot machines — believe me, with a team of 15 teen age students making changes that is a real issue.

— — — — — — — — — — — — — — — — — — — — — — -
Problems With Legacy Compiled Languages
* Difficult To Learn
* Difficult To Program/Debug
* Difficult To Be Productive (MVP)

True in general, but especially for young students

— — — — — — — — — — — — — — — — — — — — — — -
Hello Scripting Languages
* Ruby
* Python
* Java

These languages are far easier to learn and program. Lots of tutorials, books, … Can write working code in minutes. Heck, even a few CS professors have been able to learn and teach these! Oh yeah, I left off anything MS related — MS is NOT FOSS but that is a talk/blog for another day.

— — — — — — — — — — — — — — — — — — — — — — -
How About Python
* Slow
* GIL
* Version Mess
* White Space Love or Hate

Python’s libs make it easy to do almost anything. But it is slow. And the community has really screwed up the versioning — it’s a freaking mess. And having tutorials spend pages on setting up a virtual environment before coding Hello World is just stupid. And then there is white space. Ending a function with the correct number of white spaces ??

— — — — — — — — — — — — — — — — — — — — — — -
So How About Java
* Verbose
* Hard to Bundle

And personally we want to stay far, far away from anything tainted by Oracle. Google should have known that (of course java did get the job done for Android to dominate the phone market and beat the pants off Windows phone ….)

— — — — — — — — — — — — — — — — — — — — — — —
How About Ruby
* Slow
* GIL
* Trapped in Rails Lovefest
* Sci Ruby = No Love

Ruby is a great language for learning and being productive. But the whole community is wrapped up in Rails. For example changes to the PG db driver seem to work for Rails but often not for Sinatra. Guess the Rails script kids are not interested in or not capable of data science programming. And even with the coming Ruby 3x3 speed improvements, it is still probably too slow for Tensor Flow AI stuff. But maybe — certainly seems to be progressing in the right direction with threads, etc.

“Ruby is Not Slow, Active Record is Slow”

Amen. Forgot where I read this. Duh, we noticed this the very first time used Rails back in 2000 something. But the future for Ruby to be leading in AI data science is doubtful if the community cannot get past being dependant on an ORM.

— — — — — — — — — — — — — — — — — — — — — — —
Get The Best of Both Worlds
* Easy Scripting Language
* Compiled For Speed

— — — — — — — — — — — — — — — — — — — — — — —

The New Compiled Scripting Languages
* Crystal
* Nim
* Go
* Svelte / Deno
* Julia

We are not experts on any of these — nor have we done benchmarks — it is left to the listener. We just used each to build a simple web site to get the feel. Anyone knowing more on any of these is encouraged to comment.

— — — — — — — — — — — — — — — — — — — — — — —
Crystal
* “Slick As Ruby, Fast As C”
* 90–95% Ruby Compatible
* Fast Running!
* Got Frameworks
* Sufficient and Growing Libs (Shards)
* Not Statically Linked

We really like Crystal. For real Rubyists (not the Rails script kids) it is a no-brainer to use instead of Ruby. It seems pretty stable. Compiled programs run so much faster than in Ruby. It still is slow to compile but that seems to be getting better with new versions (we just wish they would concentrate on that instead of going down the windows support rabbit hole). Kemal is a nice simple framework like Sinatra with web sockets built in and the shards make data connections really easy. It needs the Stripe gem converted to a shard — any college student out there want to make a good resume building contribution ? One lacking feature is static linking so a runtime lib is needed.

— — — — — — — — — — — — — — — — — — — — — — —
Go Language
* Fast Running
* Super Fast Compiling
* Lots of “Go Get” libs
* Very Active Community
* Sort of Like Easy C Programming
* Sadly, A Google Product

Go is a really nice language. We quickly were able to build a working website and were amazed at the virtually real-time compiling (sometimes kept recompiling since it was so fast we didn’t realize it compiled. Relies on using structs. The community has more of a programmer feel — ask about frameworks and expect an answer like “don’t need no stinkin frameworks” And they are right. If not controlled by Google we would probably be using GO now. But Google has a bad reputation of suddenly changing direction or even abandoning projects. Can you say Angular 1 -> 2 -> 4000, whatever. Even Google language strategy: GO — Dart ? … Also we do not like Google tracking (whether for advertisers or the govt: NSA/CIA/NRO — Alphabet — Get It (: — we are now moving everything we can off Google. Google already routinely blocks our gmails saying Linux / Thunderbird is suspicious from a company that is advocating Typescript (MS EEE). We think Google is the suspicious one. SO NO GO.

— — — — — — — — — — — — — — — — — — — — — — —
Nim Language
* Similar Conventions / Whitespace To Python
* Fast
* Has Jester Sinatra Like Framework
* Has Arraymancer NumPy Like
* Compiles to C, C++, or Javascript
* Has a Nim Book

Nim is interesting. It is not very python language compatible and will require some effort to learn the syntax. There are some nice libraries for both data science and gaming. Needs a strong supporter.

— — — — — — — — — — — — — — — — — — — — — — —
Svelte
* Fast
* Compiles to C or JS
* Compiled Javascript
* Combines JS with Regular CSS
* Replacement For React

This is a really interesting approach to Javascript programming. Very new with little community. None of React’s goofy JS CSS conventions — just normal CSS. Creates all in one templates similar to Vue.

— — — — — — — — — — — — — — — — — — — — — — —
Deno
* Just Off The Presses
* By Ryan Dahl — Creator of NodeJS
* Successor To Express ?

Just saw Ryan’s presentation of this. Sounds similar to Svelte — don’t know anything more. Something to watch out for.

— — — — — — — — — — — — — — — — — — — — — — —
Julia
* aimed at data science
* gaining nice following
* syntax not as simple as python but maybe not that hard

Julia is probably not a language for building websites but it is a language for data science. And perhaps gaming. And it is relatively new — while it was ported to Raspberry Pi in 2017 haven’t seen any articles on applications with it lately. Probably a better bet for robotics than Python — at the least, a strong alternative.

— — — — — — — — — — — — — — — — — — — — — — —
Ignore The Trolls
* “Waiting For v 1.0”
* “Needs Windows Version”
* “Needs An ORM”
* “Waiting For Production Ready”

Ignore the do nothings or paid shills — Just try one or more of these languages! Well, at least on a small project. Forget versions. We’ve been using Inkscape for 15 years and it’s still v 0.9x. And who needs Windows anyway. Real progammers or data centers are not using Windows, are they? Hope not — it is like a formula one car driver relying on KMart tires. We certainly would not hire anyone choosing to use Windows. And if an ORM is that necessary for you, then maybe these good programming languages are not for you.

— — — — — — — — — — — — — — — — — — — — — — —
Post Mortem
We chose to go all in with Javascript and NodeJS, especially with async/await which makes programming more clear/understandable (especially for the students). Speeds are fast. There is a JS tensorflow module. There is good support for the low cost Raspberry Pi and Arduino and Beagle Boards. Mongodb provides an easy data interface with the native node driver (we love Postgresql but the drivers and docs for NodeJS imho just suck — we’ve lost too much time screwing around with them. So for now Node and Mongo for better or worse. We are keeping an eye on Svelte and Deno — could be a big breakthru there. We only wish Crystal had more support for AI and Data Science — it is well suited for it so maybe in time. And maybe if GO is separated from Google…

Oh yeah, and no Github with the MS purchase — we will rely on Gitlab anb Gitea! FOSS devs would be wise to do similar — don’t doubt us on this but why for another day.

That’s it. Hope it was helpful.

Add a comment

Related posts:

My dream trip

I am very happy to share that moment,last month me and my family and my close friends are going Kodaikaanal. we are going to many places then we saw different colours of flowers. Then i saw the falls…

PhotographyTalk Scholarship

Art comes in many forms; I have always known this. Lyrics can be sung to the melody of a guitar, pigments can be mixed and guided across a canvas, and sentences can be structured in the makings of a…

Pitch

Amidst a historical pandemic, social media has been the main form of communication for not only the general public but for celebrities as well. Kanye West is undoubtedly one of the most influential…