Sebastian Mueller · Sep 22, 2017 go to post

Hi Evgeny,

I guess it's not as much about the size of the community as it is about its composition. COS is not necessarily the kind of programming language/stack a start up is going to choose over JS/Ruby/Python/whatever is hip today. I assume (and it really is just an assumption) many companies are featuring business oriented development focusing on effecient database access and maintaining pretty old systems. Leaving little time/opportunity to try out new things and therefore contribute to the open source community.

I think if Intersystems wants to maintain COS as a viable language and not have every developer rather focus on Node and using Caché solely as a database system they are better off supporting open source efforts and making the language more appealing to younger developers.

Regarding your bullet points

1. Seeing how much of a difference even small contributions make in the COS world (vscode integration, json-output way before itw as implemented in the core language) I think many developers would benefit from even small tools/routines being open sourced.

2. github makes it incredibly easy. Convincing your boss that spending time on something someone else might get for free eventually is not that easy in a corporate environment.

3. As long as it is not using external functionality a simple xml import or install script should be viable.

Personally I really am looking forward to some new features and would like to contribute to projects.

Cheers!

Sebastian Mueller · Sep 19, 2017 go to post

I wholeheartedly agree. Recenlty I tried to teach myself some React/Raact Native but Vue seems so much more natural. I guess Angular (and TypeScript) is a great choice when it comes to rather large codebases but for smaller project Vue is such a breeze.

Although at times you have to deal with Chinese documentation.

Sebastian Mueller · Sep 18, 2017 go to post

Those are great ideas and while I would love to see COS move in that direction I think it's safe to say it's very unlikely to happen. Writing a transpiler is anything but an easy task and considering how small the COS community it would probably end in one or two people writing it, not getting a lot of feedback and finally abandoning the project.

Sebastian Mueller · Aug 8, 2017 go to post

A class method is what other languages usually call a static method. One that can be called even without an instance of that class existing.

Let's imagine you have a class Circle. It may have its own radius in a property

set myCircle = ##class(Circle).%New(25)

write myCircle.radius // 25

write myCircle.getArea() // the calculated area based on its own radius

But now you want to quickly calculate the area of a circle with radius 5, but you don't want to instantiate a new Circle object just for that. So you could have a ClassMethod inside the Circle Class that does that for you

write Circle.calcRadius(5)

You could also smash lots of utility functions as ClassMethods into a Utils class.

Sebastian Mueller · Aug 8, 2017 go to post

Great article!

Although "it's very lightweight" is up for debate. Considering I have both Atom and VSCode opened at the moment, one of them consuming 160 MB or RAM, the other eating up 25 MB. Which makes me think, aren't they both electron-based, so they should both have a huge chromium-overhead?

Sebastian Mueller · Aug 1, 2017 go to post

Thanks everyone!

I built a solution based on your suggestions/previous work and minor modifications and it works a treat.

Sebastian Mueller · Jan 3, 2017 go to post

Impressive. I really enjoy using it. It's amazing how a little colour and auto complete vastly enhances the user experience. Since upgrading to the latest version I have some trouble with it apparently starting one of those dinosaur applications we got on our server when I open it up. Might be a configuration issue on our part.

Sebastian Mueller · Jan 3, 2017 go to post

Have you tried using a different client (such as putty) to make sure it really is the terminal that causes the problem?

Sebastian Mueller · Aug 24, 2016 go to post

AFAIK everything is a string, it's just parsed prior to being processed. So it sees the 5, then characters it omits, same for the other string, so you are left with two numbers (which probably are processed as floats) which the + operator adds. Is that correct?

Sebastian Mueller · Aug 24, 2016 go to post

Wouldn't REST allow you to test/debug things system-agnostic? Since there are countless REST clients you could use.