Re: Last words on AngularJS

2015-08-30 Thread Tony Wright
John Papa released the source code for his pluralsight course on GitHub. It
shows an angular structure, but does not include TypeScript. I believe that
version is coming...

I highly recommend his course.

https://github.com/johnpapa/CodeCamper

On Mon, Aug 31, 2015 at 12:24 PM, Greg Keogh gfke...@gmail.com wrote:

 I'm a TS expert after using it for a whole two hours over the weekend and
 I recommend it. It adds type safety somewhat over JS and that alone is a
 good dev time experience.


 Did you work out a convention for structuring the files in a large
 project? Did you mix Angular into things, or use jQuery to talk to the DOM?

 *Greg*



Re: Last words on AngularJS

2015-08-30 Thread DotNet Dude
On Monday, 31 August 2015, Greg Keogh gfke...@gmail.com wrote:

 I'm a TS expert after using it for a whole two hours over the weekend and
 I recommend it. It adds type safety somewhat over JS and that alone is a
 good dev time experience.


 Did you work out a convention for structuring the files in a large
 project? Did you mix Angular into things, or use jQuery to talk to the DOM?

 *Greg*


Sif... TS projects don't give any file structure guidance in VS so as with
all other JS work it's up to you to structure files. Tried some more
Angular but not enough to know how it would be in large projects. Sure I
can see it getting out of hand but so did webforms.


Last words on AngularJS

2015-08-30 Thread DotNet Dude
I'm a TS expert after using it for a whole two hours over the weekend and I
recommend it. It adds type safety somewhat over JS and that alone is a good
dev time experience.

On Tuesday, 25 August 2015, noonie neale.n...@gmail.com
javascript:_e(%7B%7D,'cvml','neale.n...@gmail.com'); wrote:

 Greg,

 You said;

 I still want to use TypeScript to run the show, mainly because of the
 familiar IDE and its benefits. I'm going to spend more time today trying to
 find guidance about how to structure a reasonably serious TS project, and
 how to use jQuery from within.

 I'm very interested in your experiences in this endeavour as I want to use
 TS in an upcoming project, because it just feels right, and it's the
 project  dependency structures in TFS that I'm concerned about.

 Could you please share with this list anything that you find interesting,
 if you have the time?

 --
 noonie


 On 25 August 2015 at 08:58, Greg Keogh gfke...@gmail.com wrote:

 I just wish there were some JS standards. Imagine flying on Air
 JavaScript: you get to one of the dozens of airports on roads that have
 peeled off old roads to other airports, then there are 16 wildly different
 types of plane all claiming to get you to your destination somehow, some
 planes can't fly without being towed by other planes, some planes are still
 being assembled on the runways, some passengers have even brought their
 favourite pieces of plane with them to help build a new plane once they
 convince other passengers to join them.

 I still want to use TypeScript to run the show, mainly because of the
 familiar IDE and its benefits. I'm going to spend more time today trying to
 find guidance about how to structure a reasonably serious TS project, and
 how to use jQuery from within. Web searches do produce a few possibly
 useful results on this subject, but they all get tangled in dependencies on
 other JS libraries and I my eyes glaze over at the hurdle.

 *Greg*





RE: Last words on AngularJS

2015-08-27 Thread Paul Glavich
Agree with that.

 

Best practice is a furfy. You don’t get one with server side either. JS is just 
more finicky. I often use Yeoman to generate a folder/project structure but 
never really use it verbatim. I am too opinionated for that :)

 

I do give credit to Greg’s point around multiple dependencies and seemingly 
brittle nature of it all.

 

-  Glav

 

From: ozdotnet-boun...@ozdotnet.com [mailto:ozdotnet-boun...@ozdotnet.com] On 
Behalf Of Stephen Price
Sent: Wednesday, 26 August 2015 12:26 PM
To: ozDotNet ozdotnet@ozdotnet.com
Subject: Re: Last words on AngularJS

 

I think the problem you are experiencing, Greg, is that you are looking for the 
right way to write Javascript apps. Is that what you mean by best practice?

 

I look at that as being similar to someone saying they are looking for the 
right woman. There is no right woman, there are just a large set of 
permutations of women. As soon as you try to apply rules of classification (ie 
a filter to apply to separate right from wrong) then you are applying an 
artificial, subjective ruleset. 

 

Try not to think of it in terms of right and wrong. Javascript is a guide, 
Greg. She can help you to find the path. 

 

  
http://t.signauxdeux.com/e1t/o/5/f18dQhb0S1Ll8dDMPbW2n0x6l2B9gXrW7sKj5C56dQtgf3ZlND602?si=6200614728499200pi=5ca12bb3-5c1e-4829-f544-699eb7379070
 

 

On Wed, Aug 26, 2015 at 8:18 AM, Greg Keogh gfke...@gmail.com 
mailto:gfke...@gmail.com  wrote:

Did you come across yeoman and angular generator?

https://github.com/yeoman/generator-angular#angularjs-generator-

Those tools scaffold/generate code base on “best practice”.

 

This is a great illustration of my gripe with the JS ecosystem.

 

Yeoman generator for AngularJS - lets you quickly set up a project with 
sensible defaults and best practices. There are many starting points for 
building a new Angular single page app, in addition to this one. To see a 
comparison of the popular options, have a look at this comparison.

 

Due to best practise confusion we need a JS tool to generate sensible code 
which wraps the underlying JS language and you need to install yo, grunt-cli, 
bower, generator-angular and generator-karma as dependencies to make it all 
work. I reads like an IT comedy sketch.

 

I'll bet there are people arguing that the best practices aren't the best and 
they know and have implemented better ones! I might write a best practice 
generator in JS and when it's bootstrapped far enough I'll get it to write 
itself.

 

Greg

 



Re: Last words on AngularJS

2015-08-25 Thread Stephen Price
I think the problem you are experiencing, Greg, is that you are looking for
the right way to write Javascript apps. Is that what you mean by best
practice?

I look at that as being similar to someone saying they are looking for the
right woman. There is no right woman, there are just a large set of
permutations of women. As soon as you try to apply rules of classification
(ie a filter to apply to separate right from wrong) then you are applying
an artificial, subjective ruleset.

Try not to think of it in terms of right and wrong. Javascript is a guide,
Greg. She can help you to find the path.


On Wed, Aug 26, 2015 at 8:18 AM, Greg Keogh gfke...@gmail.com wrote:

 Did you come across yeoman and angular generator?

 https://github.com/yeoman/generator-angular#angularjs-generator-

 Those tools scaffold/generate code base on “best practice”.


 This is a great illustration of my gripe with the JS ecosystem.

 *Yeoman generator for AngularJS - lets you quickly set up a project with
 sensible defaults and best practices. There are many starting points for
 building a new Angular single page app, in addition to this one. To see a
 comparison of the popular options, have a look at this comparison.*

 Due to best practise confusion we need a JS tool to generate sensible
 code which wraps the underlying JS language and you need to install yo,
 grunt-cli, bower, generator-angular and generator-karma as dependencies to
 make it all work. I reads like an IT comedy sketch.

 I'll bet there are people arguing that the best practices aren't the
 best and they know and have implemented better ones! I might write a best
 practice generator in JS and when it's bootstrapped far enough I'll get it
 to write itself.

 *Greg*



RE: Last words on AngularJS

2015-08-25 Thread Nelson Chan
Just curious when you were experimenting with your AngularJS demo project and 
getting frustrated,

Did you come across yeoman and angular generator?
https://github.com/yeoman/generator-angular#angularjs-generator-

Those tools scaffold/generate code base on “best practice”.
Although they aren’t designed to incorporating the app into a ASP.NET codebase, 
but you can still take them as a reference.

However, personally I enjoy writing SPA as a completely standalone client 
(using plain html,js, bower etc and host it out of ASP.NET (even just an amazon 
s3 will do)
And it will be very easy to package the app as a hybrid mobile app – it’s just 
a matter of adding phonegap or something into your grunt/gulp build script
That will separate your backend web service and client and make your life much 
more easier.


Regards,

Nelson Chan

From: ozdotnet-boun...@ozdotnet.com [mailto:ozdotnet-boun...@ozdotnet.com] On 
Behalf Of Thomas Koster
Sent: Tuesday, 25 August 2015 11:42 AM
To: ozDotNet ozdotnet@ozdotnet.com
Subject: Re: Last words on AngularJS

It looks like ECMAScript 6 introduces lots of new features [1]. At first I 
thought this was a joke, but a quick scan over the standard [2] appears to 
confirm this. Do not expect adoption by browsers for several years, though.

JavaScript, despite its flaws, used to be simple. But it seems a language has 
to be multi-paradigm these days to stay relevant. See C# = 3.0, Scala, Swift 
and recent additions to C++. I call such languages Frankenstein's Monster 
languages because they cherry-pick features of their predecessors, sometimes in 
bizarre combinations, without advancing the art. Swift was especially 
disappointing; after all the hype of a new programming language by Apple, 
Swift turned out to be prosaic. Now JavaScript is evolving into a typeless 
Scala, and becoming equally grotesque. Just look at this list of some of the 
new features for JavaScript:

  *   modules (a la Pascal/Modula)
  *   block scoping (a la structured languages)
  *   class definitions and inheritance (a la OO languages)
  *   property accessor functions (a la OO languages)
  *   lambda expressions (a la functional languages)
  *   pattern matching (a la functional languages)
  *   iterators and generators (a la Python)
  *   string interpolation (a la Perl and macro languages)
  *   binary and octal literals (a la assembly and C)
Some new features will at least make a few of those frameworks in the zoo 
obsolete. For example, mustache.js and handlebars.js should hopefully disappear 
if the new string interpolation feature is good enough.

[1] http://es6-features.org
[2] http://www.ecma-international.org/ecma-262/6.0

--
Thomas Koster


On 25 August 2015 at 08:58, Greg Keogh 
gfke...@gmail.commailto:gfke...@gmail.com wrote:
I just wish there were some JS standards. Imagine flying on Air JavaScript: you 
get to one of the dozens of airports on roads that have peeled off old roads to 
other airports, then there are 16 wildly different types of plane all claiming 
to get you to your destination somehow, some planes can't fly without being 
towed by other planes, some planes are still being assembled on the runways, 
some passengers have even brought their favourite pieces of plane with them to 
help build a new plane once they convince other passengers to join them.

I still want to use TypeScript to run the show, mainly because of the familiar 
IDE and its benefits. I'm going to spend more time today trying to find 
guidance about how to structure a reasonably serious TS project, and how to use 
jQuery from within. Web searches do produce a few possibly useful results on 
this subject, but they all get tangled in dependencies on other JS libraries 
and I my eyes glaze over at the hurdle.

Greg



Re: Last words on AngularJS

2015-08-25 Thread Greg Keogh

 Did you come across yeoman and angular generator?

 https://github.com/yeoman/generator-angular#angularjs-generator-

 Those tools scaffold/generate code base on “best practice”.


This is a great illustration of my gripe with the JS ecosystem.

*Yeoman generator for AngularJS - lets you quickly set up a project with
sensible defaults and best practices. There are many starting points for
building a new Angular single page app, in addition to this one. To see a
comparison of the popular options, have a look at this comparison.*

Due to best practise confusion we need a JS tool to generate sensible
code which wraps the underlying JS language and you need to install yo,
grunt-cli, bower, generator-angular and generator-karma as dependencies to
make it all work. I reads like an IT comedy sketch.

I'll bet there are people arguing that the best practices aren't the best
and they know and have implemented better ones! I might write a best
practice generator in JS and when it's bootstrapped far enough I'll get it
to write itself.

*Greg*


Re: Last words on AngularJS

2015-08-24 Thread Greg Keogh
Paul, most of what you said actually supports my anguish over the lottery
of kits, tools, packages and standards (ha!) and fads in the JavaScript
ecosystem.

Over the last week or more since I expressed my dismay, I've been reading
more and more about the zoo of frameworks that decorate JavaScript and
attempt to hoist it up into the world of real languages. It's getting so
stupid that the AngularJS seems to have decided to completely rewrite it
for v2 using TypeScript, and someone got upset and split off to make
Aurelia because it was more pure, but apparently they're friends again
now, I think. It's worse than a zoo, it's like a steaming compost bin.

I got all excited about TypeScript last weekend and I spent an afternoon
reading about it and fiddling to see if it has promise. So I create a new
HTML project and I get one small source file that shows the time. The
sample code is raw JS from the 90s and I have to go looking for a way to
integrate jQuery and/or AngularJS into the project. So dozens of
opinionated pages later I discover I just about have to reinvent the steam
engine to try an integrate them, and there are literally dozens of experts
all claiming they know they best way to do it, with all sorts of cryptic
pseudo-functional coding tricks. I simply want to know how to structure a
large TS project, but there is no reliable guidance anywhere, it's just a
dogs breakfast.

This is what happens when a script becomes accidentally promoted to become
the new fangled language to drive LOB apps in the web without proper
planning by industry experts and academics. There are no conventions for
code or project structure, references, dependencies, building, testing ...
anything! ... it's just a bottomless kludge of more tools made in
JavaScript to try and make itself look and behave sensibly.

I am now overwhelmed by despair at what damage JavaScript has done to
software development in the 21st century. I know there are lots of younger
developers out there who shrug and think what's so bad, it's working, but
I think they're just used to suffering and take it for granted.

*Greg*

List of JavaScript Libraries
https://en.wikipedia.org/wiki/List_of_JavaScript_libraries


Re: Last words on AngularJS

2015-08-24 Thread Greg Harris
I just have to say it

To avoid all of this JS pain, we should all be using Silverlight!

Regards
Greg Harris

On Mon, Aug 24, 2015 at 8:25 PM, Greg Keogh gfke...@gmail.com wrote:

 Paul, most of what you said actually supports my anguish over the
 lottery of kits, tools, packages and standards (ha!) and fads in the
 JavaScript ecosystem.

 Over the last week or more since I expressed my dismay, I've been reading
 more and more about the zoo of frameworks that decorate JavaScript and
 attempt to hoist it up into the world of real languages. It's getting so
 stupid that the AngularJS seems to have decided to completely rewrite it
 for v2 using TypeScript, and someone got upset and split off to make
 Aurelia because it was more pure, but apparently they're friends again
 now, I think. It's worse than a zoo, it's like a steaming compost bin.

 I got all excited about TypeScript last weekend and I spent an afternoon
 reading about it and fiddling to see if it has promise. So I create a new
 HTML project and I get one small source file that shows the time. The
 sample code is raw JS from the 90s and I have to go looking for a way to
 integrate jQuery and/or AngularJS into the project. So dozens of
 opinionated pages later I discover I just about have to reinvent the steam
 engine to try an integrate them, and there are literally dozens of experts
 all claiming they know they best way to do it, with all sorts of cryptic
 pseudo-functional coding tricks. I simply want to know how to structure a
 large TS project, but there is no reliable guidance anywhere, it's just a
 dogs breakfast.

 This is what happens when a script becomes accidentally promoted to become
 the new fangled language to drive LOB apps in the web without proper
 planning by industry experts and academics. There are no conventions for
 code or project structure, references, dependencies, building, testing ...
 anything! ... it's just a bottomless kludge of more tools made in
 JavaScript to try and make itself look and behave sensibly.

 I am now overwhelmed by despair at what damage JavaScript has done to
 software development in the 21st century. I know there are lots of younger
 developers out there who shrug and think what's so bad, it's working, but
 I think they're just used to suffering and take it for granted.

 *Greg*

 List of JavaScript Libraries
 https://en.wikipedia.org/wiki/List_of_JavaScript_libraries




RE: Last words on AngularJS

2015-08-24 Thread Paul Glavich
We use and have used AngularJS with great success. It (IMHO) assists to bring 
order to chaos. We haven’t really had much of an issue apart from an initial 
learning curve and have built some very complex pieces with it. In addition, 
the resulting code is relatively easy to maintain.

 

I will agree there is plenty of confusion about how to best do things, which 
ironically is also one of its strengths. It does sound like you want a very 
opinionated and prescriptive framework and there are plenty. 

 

Right now though, front end dev is an absolute lottery of frameworks and 
package managers. Pick a framework, hell pick 10, include them with any number 
of package managers and there is a good chance it won’t be the best solution in 
a years time (and if it is, keeping up with changes to all your dependencies 
can be tiiugh), Front end tooling is currently obsessed with the next new 
thing, rather than getting the job done with a mature thing. While we have 
currently leaned towards AngularJS for current dev, I will be sitting back and 
watching the space before committing to any future frameworks, whether Aurelia, 
react, Angular2, Ember or other. A few will gain ground and possibly fall from 
favour as kinks and real apps put them to the test. By real apps, I mean 
average teams doing LOB apps and such. It is great to say a framework is great 
when used by a team of interstellar genius types. Your team may not fare so 
well tho.

 

-  Glav

 

From: ozdotnet-boun...@ozdotnet.com [mailto:ozdotnet-boun...@ozdotnet.com] On 
Behalf Of Scott Barnes
Sent: Sunday, 9 August 2015 9:02 PM
To: ozDotNet ozdotnet@ozdotnet.com
Subject: Re: Last words on AngularJS

 

Adobe Flex, Silverlight and WPF all have the same techniques described and 
issues with AngularJS. The issue in question is more around the ability to 
load/unload views in an elegant fashion that leaves you with a sense of 
simplicity or cleanliness in memory collection as well.

 

Binding is also a huge issue, it was never really rectified as cleanly as I had 
hoped over the years as i still see binding a problem similiar to how I guess 
Entity Framework started out I want to visualise how that field gets its 
values and trace its origins back through the rest api's down to the metal if 
need be..

 

As that's where profiling and stuff comes back to the forefront and helps steal 
some of the sting out of exceptions.

 

I think you're on the same hunt we've always been on since 2005-2009 whereby we 
want to create inline apps that have deep linking style loading but without the 
complexity and code management overheads.

 

AngluarJS or whatever isn't really meant to last beyond maybe a year or two. 
Anyone who's still shooting for an app that gets designed in 2015 and still 
useable and manageable in 2020 is on a fools errand as today, the modernizing 
of apps is constantly going to push your comfort levels. Microsoft is also 
quite hungry to regrow its grass roots so i'd expect a bit more of healthy 
chaos from them here as well.

 

That all being said, the JS route is steps backwards not forwards as its still 
trying to pickup from lost ground that tech like Winforms, Silverlight, WPF and 
Adobe Flash/Flex (yeah even these had it better) and it's still a bit of a 
hacky approach to obsfucating as much of free thinking JS from the devs as 
possible. 

I think you're feeling the inertia though of the wild js-west, in that there 
are really no rules here or compiler feedback loops.. you write it, it does 
something visually and you can't see any obvious signs of memory profilers 
going out of shape...hey...ship it... and that's the part that leaves me a bit 
personally nervous ;) ..as in the hands of a mature dev it could work great 
and longevity intact...but...in my experience not all teams are mature and 
you have a variety of styles of thinking / code here so it's now back to some 
serious code-reviews to maybe act as the last safeguard in thinking here?

 

*if* i had to pick i'd say AngularJS is probably the closest to the previous 
styles of thinking and that's probably the first red flag ;)




---
Regards,
Scott Barnes
http://www.riagenic.com

 

On Sun, Aug 9, 2015 at 7:35 PM, Greg Keogh gfke...@gmail.com 
mailto:gfke...@gmail.com  wrote:

We're you using RequireJS?
RequireJS is something you can use to bring in common and worker viewmodels.
It may be your missing link!

 

I just had a glance over the main web pages. In a rush I get impression that 
this is library that simulates dependencies between JavaScript files (because 
there is no such native concept). I can't picture in my head how this would 
boost productivity or enhance the development experience, it looks like just 
something else to clutter and confuse what you're doing. But it's late, so I 
might be missing the point and I need to read more -- GK

 



RE: Last words on AngularJS

2015-08-24 Thread Adrian Halid
In the world according to Github Javascript is now the number 1 popular 
programming language used in their repositories. Might be due to all the 
Javascript frameworks out there:).

It is also interesting to see the climb of Java from 7th to 2nd over the last 7 
years.

 

https://github.com/blog/2047-language-trends-on-github

 

 

 

Regards

 

Adrian Halid 

 

From: ozdotnet-boun...@ozdotnet.com [mailto:ozdotnet-boun...@ozdotnet.com] On 
Behalf Of Greg Keogh
Sent: Monday, 24 August 2015 6:26 PM
To: ozDotNet ozdotnet@ozdotnet.com
Subject: Re: Last words on AngularJS

 

Paul, most of what you said actually supports my anguish over the lottery of 
kits, tools, packages and standards (ha!) and fads in the JavaScript 
ecosystem.

 

Over the last week or more since I expressed my dismay, I've been reading more 
and more about the zoo of frameworks that decorate JavaScript and attempt to 
hoist it up into the world of real languages. It's getting so stupid that the 
AngularJS seems to have decided to completely rewrite it for v2 using 
TypeScript, and someone got upset and split off to make Aurelia because it was 
more pure, but apparently they're friends again now, I think. It's worse than 
a zoo, it's like a steaming compost bin.

 

I got all excited about TypeScript last weekend and I spent an afternoon 
reading about it and fiddling to see if it has promise. So I create a new HTML 
project and I get one small source file that shows the time. The sample code is 
raw JS from the 90s and I have to go looking for a way to integrate jQuery 
and/or AngularJS into the project. So dozens of opinionated pages later I 
discover I just about have to reinvent the steam engine to try an integrate 
them, and there are literally dozens of experts all claiming they know they 
best way to do it, with all sorts of cryptic pseudo-functional coding tricks. I 
simply want to know how to structure a large TS project, but there is no 
reliable guidance anywhere, it's just a dogs breakfast.

 

This is what happens when a script becomes accidentally promoted to become the 
new fangled language to drive LOB apps in the web without proper planning by 
industry experts and academics. There are no conventions for code or project 
structure, references, dependencies, building, testing ... anything! ... it's 
just a bottomless kludge of more tools made in JavaScript to try and make 
itself look and behave sensibly.

 

I am now overwhelmed by despair at what damage JavaScript has done to software 
development in the 21st century. I know there are lots of younger developers 
out there who shrug and think what's so bad, it's working, but I think 
they're just used to suffering and take it for granted.

 

Greg

 

List of JavaScript Libraries 
https://en.wikipedia.org/wiki/List_of_JavaScript_libraries 

 



RE: Last words on AngularJS

2015-08-24 Thread Paul Glavich
Greg and others,

 

One of Javascript’s strength is also it’s weakness. You can do literally 
anything with it. It is one of the most flexible and adaptable languages there 
is. This (IMHO) is one of the reasons it is popular. With that, many people 
twist and change it to what they think is best, and there are plenty of 
differing opinions, so here we are.

 

As industry experts/veterans, it is always a challenge to look at the good 
parts of a framework/approach and:

a)  Accept the bad bits and use it

b)  Accept only the good bits and augment so that the bad bits are mitigated

c)   Watch and provide input to try and steer 
communities/frameworks/languages in the desired direction

d)  Do it all using the basic accepted tools currently available. This 
means things like just plain js/ jQuery/ES6(maybe using things like babel) etc.

 

It is all in flux right now hence my call to wait it out for a bit (which 
libraries gain community momentum). To expect a strict guidance on how to do 
things in a particular framework for a large application is always going to be 
contentious in our field because of the “it depends” clause. There is no one 
way. The fact that you have had to research something quite a bit should at the 
very last have helped you form a much leaner and clearer picture of what you 
want, which can feed into the constant decision process as well as design.

 

It is not easy but do not get too hung up on getting the perfect way via a 
particular tool (analysis paralysis). Pick the best possible that you think 
applies to you, weigh the risks and commit.  The rest you can tailor to what 
you want. Final note: On a current project we are using Angular, however there 
are legacy elements still working fine but using prototype.js. Point being, at 
the end of the day, if you are just using  plan old JS (whether via a 
particular library) it will continue to work for a long long time.

 

-  Glav

 

From: ozdotnet-boun...@ozdotnet.com [mailto:ozdotnet-boun...@ozdotnet.com] On 
Behalf Of Adrian Halid
Sent: Monday, 24 August 2015 9:23 PM
To: 'ozDotNet' ozdotnet@ozdotnet.com
Subject: RE: Last words on AngularJS

 

In the world according to Github Javascript is now the number 1 popular 
programming language used in their repositories. Might be due to all the 
Javascript frameworks out there:).

It is also interesting to see the climb of Java from 7th to 2nd over the last 7 
years.

 

https://github.com/blog/2047-language-trends-on-github

 

 

 

Regards

 

Adrian Halid 

 

From: ozdotnet-boun...@ozdotnet.com mailto:ozdotnet-boun...@ozdotnet.com  
[mailto:ozdotnet-boun...@ozdotnet.com] On Behalf Of Greg Keogh
Sent: Monday, 24 August 2015 6:26 PM
To: ozDotNet ozdotnet@ozdotnet.com mailto:ozdotnet@ozdotnet.com 
Subject: Re: Last words on AngularJS

 

Paul, most of what you said actually supports my anguish over the lottery of 
kits, tools, packages and standards (ha!) and fads in the JavaScript 
ecosystem.

 

Over the last week or more since I expressed my dismay, I've been reading more 
and more about the zoo of frameworks that decorate JavaScript and attempt to 
hoist it up into the world of real languages. It's getting so stupid that the 
AngularJS seems to have decided to completely rewrite it for v2 using 
TypeScript, and someone got upset and split off to make Aurelia because it was 
more pure, but apparently they're friends again now, I think. It's worse than 
a zoo, it's like a steaming compost bin.

 

I got all excited about TypeScript last weekend and I spent an afternoon 
reading about it and fiddling to see if it has promise. So I create a new HTML 
project and I get one small source file that shows the time. The sample code is 
raw JS from the 90s and I have to go looking for a way to integrate jQuery 
and/or AngularJS into the project. So dozens of opinionated pages later I 
discover I just about have to reinvent the steam engine to try an integrate 
them, and there are literally dozens of experts all claiming they know they 
best way to do it, with all sorts of cryptic pseudo-functional coding tricks. I 
simply want to know how to structure a large TS project, but there is no 
reliable guidance anywhere, it's just a dogs breakfast.

 

This is what happens when a script becomes accidentally promoted to become the 
new fangled language to drive LOB apps in the web without proper planning by 
industry experts and academics. There are no conventions for code or project 
structure, references, dependencies, building, testing ... anything! ... it's 
just a bottomless kludge of more tools made in JavaScript to try and make 
itself look and behave sensibly.

 

I am now overwhelmed by despair at what damage JavaScript has done to software 
development in the 21st century. I know there are lots of younger developers 
out there who shrug and think what's so bad, it's working, but I think 
they're just used to suffering and take it for granted.

 

Greg

Re: Last words on AngularJS

2015-08-24 Thread Greg Keogh

 Could you please share with this list anything that you find interesting,
 if you have the time?


Sure! So far, after 45 minutes of intense experiments and Google searches I
have failed to get my first single line of code working. I can't even set
the text in an input field using a jQuery statement (the $ is undefined).

So I'm off to a good start.

*Greg*


Re: Last words on AngularJS

2015-08-24 Thread Greg Keogh
I just wish there were some JS standards. Imagine flying on Air JavaScript:
you get to one of the dozens of airports on roads that have peeled off old
roads to other airports, then there are 16 wildly different types of plane
all claiming to get you to your destination somehow, some planes can't fly
without being towed by other planes, some planes are still being assembled
on the runways, some passengers have even brought their favourite pieces of
plane with them to help build a new plane once they convince other
passengers to join them.

I still want to use TypeScript to run the show, mainly because of the
familiar IDE and its benefits. I'm going to spend more time today trying to
find guidance about how to structure a reasonably serious TS project, and
how to use jQuery from within. Web searches do produce a few possibly
useful results on this subject, but they all get tangled in dependencies on
other JS libraries and I my eyes glaze over at the hurdle.

*Greg*


Re: Last words on AngularJS

2015-08-24 Thread noonie
Greg,

You said;

I still want to use TypeScript to run the show, mainly because of the
familiar IDE and its benefits. I'm going to spend more time today trying to
find guidance about how to structure a reasonably serious TS project, and
how to use jQuery from within.

I'm very interested in your experiences in this endeavour as I want to use
TS in an upcoming project, because it just feels right, and it's the
project  dependency structures in TFS that I'm concerned about.

Could you please share with this list anything that you find interesting,
if you have the time?

-- 
noonie


On 25 August 2015 at 08:58, Greg Keogh gfke...@gmail.com wrote:

 I just wish there were some JS standards. Imagine flying on Air
 JavaScript: you get to one of the dozens of airports on roads that have
 peeled off old roads to other airports, then there are 16 wildly different
 types of plane all claiming to get you to your destination somehow, some
 planes can't fly without being towed by other planes, some planes are still
 being assembled on the runways, some passengers have even brought their
 favourite pieces of plane with them to help build a new plane once they
 convince other passengers to join them.

 I still want to use TypeScript to run the show, mainly because of the
 familiar IDE and its benefits. I'm going to spend more time today trying to
 find guidance about how to structure a reasonably serious TS project, and
 how to use jQuery from within. Web searches do produce a few possibly
 useful results on this subject, but they all get tangled in dependencies on
 other JS libraries and I my eyes glaze over at the hurdle.

 *Greg*



Re: Last words on AngularJS

2015-08-24 Thread Thomas Koster
It looks like ECMAScript 6 introduces *lots* of new features [1]. At first
I thought this was a joke, but a quick scan over the standard [2] appears
to confirm this. Do not expect adoption by browsers for several years,
though.

JavaScript, despite its flaws, used to be simple. But it seems a language
has to be multi-paradigm these days to stay relevant. See C# = 3.0,
Scala, Swift and recent additions to C++. I call such languages
Frankenstein's Monster languages because they cherry-pick features of
their predecessors, sometimes in bizarre combinations, without advancing
the art. Swift was especially disappointing; after all the hype of a new
programming language by Apple, Swift turned out to be prosaic. Now
JavaScript is evolving into a typeless Scala, and becoming equally
grotesque. Just look at this list of some of the new features for
JavaScript:

   - modules (a la Pascal/Modula)
   - block scoping (a la structured languages)
   - class definitions and inheritance (a la OO languages)
   - property accessor functions (a la OO languages)
   - lambda expressions (a la functional languages)
   - pattern matching (a la functional languages)
   - iterators and generators (a la Python)
   - string interpolation (a la Perl and macro languages)
   - binary and octal literals (a la assembly and C)

Some new features will at least make a few of those frameworks in the zoo
obsolete. For example, mustache.js and handlebars.js should hopefully
disappear if the new string interpolation feature is good enough.

[1] http://es6-features.org
[2] http://www.ecma-international.org/ecma-262/6.0

--
Thomas Koster


On 25 August 2015 at 08:58, Greg Keogh gfke...@gmail.com wrote:

 I just wish there were some JS standards. Imagine flying on Air
 JavaScript: you get to one of the dozens of airports on roads that have
 peeled off old roads to other airports, then there are 16 wildly different
 types of plane all claiming to get you to your destination somehow, some
 planes can't fly without being towed by other planes, some planes are still
 being assembled on the runways, some passengers have even brought their
 favourite pieces of plane with them to help build a new plane once they
 convince other passengers to join them.

 I still want to use TypeScript to run the show, mainly because of the
 familiar IDE and its benefits. I'm going to spend more time today trying to
 find guidance about how to structure a reasonably serious TS project, and
 how to use jQuery from within. Web searches do produce a few possibly
 useful results on this subject, but they all get tangled in dependencies on
 other JS libraries and I my eyes glaze over at the hurdle.

 *Greg*



Re: Last words on AngularJS

2015-08-24 Thread Tom Rutter
Yeh but is it the best use of time to have the same dev do it all? We have
dedicated front end people here that knock amazing stuff up in a day that
would take me at least a week and even then my stuff wouldn't be even
remotely as well structured as theirs. It's the old jack of all trades
master of none argument. Whatever happened to separation of concerns?

On Tue, Aug 25, 2015 at 9:00 AM, Stephen Price step...@perthprojects.com
wrote:

 Yeah, I've heard it said that .Net (ie Microsoft) had for a long time
 tried to shield you from having to learn Javascript. Webforms and Asp.Net
 protects you from having to learn all that horrible web stuff. MCV took a
 step to get you closer to the browser, and I think it's a good thing.
 So given everything is moving towards the Web (for now) and away from the
 desktop it's something (for good or bad) that you need to learn. I love
 working with Javascript and have not mastered it. I can find my way
 eventually.
 I love the learning part of development and often find how things don't
 work how you expect to be frustrating. Unfortunately its usually due to a
 lack of proper understanding that makes it not work how you expect.
 Anyway, once you do figure something out that's where you get
 satisfaction. But yeah, totally get why if feels like a dogs breakfast
 along the way. Probably because it is!
 Its like finding out the aircraft you are flying in is held together by
 gaffa tape and coathangers! (most of the web is!)


 On Tue, Aug 25, 2015 at 6:28 AM, Bec C bec.usern...@gmail.com wrote:

 IMO most .net devs won't really be happy doing any JS, via a library or
 not. We just want to do the .net code and leave the front end to someone
 else. Just like the Silverlight evangelists promised. Don't see that
 happening though. Everyone seems to want a full stack developer now...and
 I'm struggling.


 On Tuesday, 25 August 2015, Paul Glavich subscripti...@theglavs.com
 wrote:

 Greg and others,



 One of Javascript’s strength is also it’s weakness. You can do literally
 anything with it. It is one of the most flexible and adaptable languages
 there is. This (IMHO) is one of the reasons it is popular. With that, many
 people twist and change it to what they think is best, and there are plenty
 of differing opinions, so here we are.



 As industry experts/veterans, it is always a challenge to look at the
 good parts of a framework/approach and:

 a)  Accept the bad bits and use it

 b)  Accept only the good bits and augment so that the bad bits are
 mitigated

 c)   Watch and provide input to try and steer
 communities/frameworks/languages in the desired direction

 d)  Do it all using the basic accepted tools currently available.
 This means things like just plain js/ jQuery/ES6(maybe using things like
 babel) etc.



 It is all in flux right now hence my call to wait it out for a bit
 (which libraries gain community momentum). To expect a strict guidance on
 how to do things in a particular framework for a large application is
 always going to be contentious in our field because of the “it depends”
 clause. There is no one way. The fact that you have had to research
 something quite a bit should at the very last have helped you form a much
 leaner and clearer picture of what you want, which can feed into the
 constant decision process as well as design.



 It is not easy but do not get too hung up on getting the perfect way via
 a particular tool (analysis paralysis). Pick the best possible that you
 think applies to you, weigh the risks and commit.  The rest you can tailor
 to what you want. Final note: On a current project we are using Angular,
 however there are legacy elements still working fine but using
 prototype.js. Point being, at the end of the day, if you are just using
 plan old JS (whether via a particular library) it will continue to work for
 a long long time.



 -  Glav



 *From:* ozdotnet-boun...@ozdotnet.com [mailto:
 ozdotnet-boun...@ozdotnet.com] *On Behalf Of *Adrian Halid
 *Sent:* Monday, 24 August 2015 9:23 PM
 *To:* 'ozDotNet' ozdotnet@ozdotnet.com
 *Subject:* RE: Last words on AngularJS



 In the world according to Github Javascript is now the number 1 popular
 programming language used in their repositories. Might be due to all the
 Javascript frameworks out thereJ.

 It is also interesting to see the climb of Java from 7th to 2nd over
 the last 7 years.



 https://github.com/blog/2047-language-trends-on-github







 *Regards*



 *Adrian Halid*



 *From:* ozdotnet-boun...@ozdotnet.com [
 mailto:ozdotnet-boun...@ozdotnet.com] *On Behalf Of *Greg Keogh
 *Sent:* Monday, 24 August 2015 6:26 PM
 *To:* ozDotNet ozdotnet@ozdotnet.com
 *Subject:* Re: Last words on AngularJS



 Paul, most of what you said actually supports my anguish over the
 lottery of kits, tools, packages and standards (ha!) and fads in the
 JavaScript ecosystem.



 Over the last week or more since I expressed my dismay, I've been
 reading more

Re: Last words on AngularJS

2015-08-24 Thread Stephen Price
Yeah, I've heard it said that .Net (ie Microsoft) had for a long time tried
to shield you from having to learn Javascript. Webforms and Asp.Net
protects you from having to learn all that horrible web stuff. MCV took a
step to get you closer to the browser, and I think it's a good thing.
So given everything is moving towards the Web (for now) and away from the
desktop it's something (for good or bad) that you need to learn. I love
working with Javascript and have not mastered it. I can find my way
eventually.
I love the learning part of development and often find how things don't
work how you expect to be frustrating. Unfortunately its usually due to a
lack of proper understanding that makes it not work how you expect.
Anyway, once you do figure something out that's where you get satisfaction.
But yeah, totally get why if feels like a dogs breakfast along the way.
Probably because it is!
Its like finding out the aircraft you are flying in is held together by
gaffa tape and coathangers! (most of the web is!)


On Tue, Aug 25, 2015 at 6:28 AM, Bec C bec.usern...@gmail.com wrote:

 IMO most .net devs won't really be happy doing any JS, via a library or
 not. We just want to do the .net code and leave the front end to someone
 else. Just like the Silverlight evangelists promised. Don't see that
 happening though. Everyone seems to want a full stack developer now...and
 I'm struggling.


 On Tuesday, 25 August 2015, Paul Glavich subscripti...@theglavs.com
 wrote:

 Greg and others,



 One of Javascript’s strength is also it’s weakness. You can do literally
 anything with it. It is one of the most flexible and adaptable languages
 there is. This (IMHO) is one of the reasons it is popular. With that, many
 people twist and change it to what they think is best, and there are plenty
 of differing opinions, so here we are.



 As industry experts/veterans, it is always a challenge to look at the
 good parts of a framework/approach and:

 a)  Accept the bad bits and use it

 b)  Accept only the good bits and augment so that the bad bits are
 mitigated

 c)   Watch and provide input to try and steer
 communities/frameworks/languages in the desired direction

 d)  Do it all using the basic accepted tools currently available.
 This means things like just plain js/ jQuery/ES6(maybe using things like
 babel) etc.



 It is all in flux right now hence my call to wait it out for a bit (which
 libraries gain community momentum). To expect a strict guidance on how to
 do things in a particular framework for a large application is always going
 to be contentious in our field because of the “it depends” clause. There is
 no one way. The fact that you have had to research something quite a bit
 should at the very last have helped you form a much leaner and clearer
 picture of what you want, which can feed into the constant decision process
 as well as design.



 It is not easy but do not get too hung up on getting the perfect way via
 a particular tool (analysis paralysis). Pick the best possible that you
 think applies to you, weigh the risks and commit.  The rest you can tailor
 to what you want. Final note: On a current project we are using Angular,
 however there are legacy elements still working fine but using
 prototype.js. Point being, at the end of the day, if you are just using
 plan old JS (whether via a particular library) it will continue to work for
 a long long time.



 -  Glav



 *From:* ozdotnet-boun...@ozdotnet.com [mailto:
 ozdotnet-boun...@ozdotnet.com] *On Behalf Of *Adrian Halid
 *Sent:* Monday, 24 August 2015 9:23 PM
 *To:* 'ozDotNet' ozdotnet@ozdotnet.com
 *Subject:* RE: Last words on AngularJS



 In the world according to Github Javascript is now the number 1 popular
 programming language used in their repositories. Might be due to all the
 Javascript frameworks out thereJ.

 It is also interesting to see the climb of Java from 7th to 2nd over the
 last 7 years.



 https://github.com/blog/2047-language-trends-on-github







 *Regards*



 *Adrian Halid*



 *From:* ozdotnet-boun...@ozdotnet.com [
 mailto:ozdotnet-boun...@ozdotnet.com] *On Behalf Of *Greg Keogh
 *Sent:* Monday, 24 August 2015 6:26 PM
 *To:* ozDotNet ozdotnet@ozdotnet.com
 *Subject:* Re: Last words on AngularJS



 Paul, most of what you said actually supports my anguish over the
 lottery of kits, tools, packages and standards (ha!) and fads in the
 JavaScript ecosystem.



 Over the last week or more since I expressed my dismay, I've been reading
 more and more about the zoo of frameworks that decorate JavaScript and
 attempt to hoist it up into the world of real languages. It's getting so
 stupid that the AngularJS seems to have decided to completely rewrite it
 for v2 using TypeScript, and someone got upset and split off to make
 Aurelia because it was more pure, but apparently they're friends again
 now, I think. It's worse than a zoo, it's like a steaming compost bin.



 I got all excited about

Re: Last words on AngularJS

2015-08-24 Thread Bec C
IMO most .net devs won't really be happy doing any JS, via a library or
not. We just want to do the .net code and leave the front end to someone
else. Just like the Silverlight evangelists promised. Don't see that
happening though. Everyone seems to want a full stack developer now...and
I'm struggling.

On Tuesday, 25 August 2015, Paul Glavich subscripti...@theglavs.com wrote:

 Greg and others,



 One of Javascript’s strength is also it’s weakness. You can do literally
 anything with it. It is one of the most flexible and adaptable languages
 there is. This (IMHO) is one of the reasons it is popular. With that, many
 people twist and change it to what they think is best, and there are plenty
 of differing opinions, so here we are.



 As industry experts/veterans, it is always a challenge to look at the good
 parts of a framework/approach and:

 a)  Accept the bad bits and use it

 b)  Accept only the good bits and augment so that the bad bits are
 mitigated

 c)   Watch and provide input to try and steer
 communities/frameworks/languages in the desired direction

 d)  Do it all using the basic accepted tools currently available.
 This means things like just plain js/ jQuery/ES6(maybe using things like
 babel) etc.



 It is all in flux right now hence my call to wait it out for a bit (which
 libraries gain community momentum). To expect a strict guidance on how to
 do things in a particular framework for a large application is always going
 to be contentious in our field because of the “it depends” clause. There is
 no one way. The fact that you have had to research something quite a bit
 should at the very last have helped you form a much leaner and clearer
 picture of what you want, which can feed into the constant decision process
 as well as design.



 It is not easy but do not get too hung up on getting the perfect way via a
 particular tool (analysis paralysis). Pick the best possible that you think
 applies to you, weigh the risks and commit.  The rest you can tailor to
 what you want. Final note: On a current project we are using Angular,
 however there are legacy elements still working fine but using
 prototype.js. Point being, at the end of the day, if you are just using
 plan old JS (whether via a particular library) it will continue to work for
 a long long time.



 -  Glav



 *From:* ozdotnet-boun...@ozdotnet.com
 javascript:_e(%7B%7D,'cvml','ozdotnet-boun...@ozdotnet.com'); [mailto:
 ozdotnet-boun...@ozdotnet.com
 javascript:_e(%7B%7D,'cvml','ozdotnet-boun...@ozdotnet.com');] *On
 Behalf Of *Adrian Halid
 *Sent:* Monday, 24 August 2015 9:23 PM
 *To:* 'ozDotNet' ozdotnet@ozdotnet.com
 javascript:_e(%7B%7D,'cvml','ozdotnet@ozdotnet.com');
 *Subject:* RE: Last words on AngularJS



 In the world according to Github Javascript is now the number 1 popular
 programming language used in their repositories. Might be due to all the
 Javascript frameworks out thereJ.

 It is also interesting to see the climb of Java from 7th to 2nd over the
 last 7 years.



 https://github.com/blog/2047-language-trends-on-github







 *Regards*



 *Adrian Halid*



 *From:* ozdotnet-boun...@ozdotnet.com
 javascript:_e(%7B%7D,'cvml','ozdotnet-boun...@ozdotnet.com'); [
 mailto:ozdotnet-boun...@ozdotnet.com
 javascript:_e(%7B%7D,'cvml','ozdotnet-boun...@ozdotnet.com');] *On
 Behalf Of *Greg Keogh
 *Sent:* Monday, 24 August 2015 6:26 PM
 *To:* ozDotNet ozdotnet@ozdotnet.com
 javascript:_e(%7B%7D,'cvml','ozdotnet@ozdotnet.com');
 *Subject:* Re: Last words on AngularJS



 Paul, most of what you said actually supports my anguish over the
 lottery of kits, tools, packages and standards (ha!) and fads in the
 JavaScript ecosystem.



 Over the last week or more since I expressed my dismay, I've been reading
 more and more about the zoo of frameworks that decorate JavaScript and
 attempt to hoist it up into the world of real languages. It's getting so
 stupid that the AngularJS seems to have decided to completely rewrite it
 for v2 using TypeScript, and someone got upset and split off to make
 Aurelia because it was more pure, but apparently they're friends again
 now, I think. It's worse than a zoo, it's like a steaming compost bin.



 I got all excited about TypeScript last weekend and I spent an afternoon
 reading about it and fiddling to see if it has promise. So I create a new
 HTML project and I get one small source file that shows the time. The
 sample code is raw JS from the 90s and I have to go looking for a way to
 integrate jQuery and/or AngularJS into the project. So dozens of
 opinionated pages later I discover I just about have to reinvent the steam
 engine to try an integrate them, and there are literally dozens of experts
 all claiming they know they best way to do it, with all sorts of cryptic
 pseudo-functional coding tricks. I simply want to know how to structure a
 large TS project, but there is no reliable guidance anywhere, it's just a
 dogs breakfast.



 This is what

Re: Last words on AngularJS

2015-08-10 Thread David Connors
On Mon, 10 Aug 2015 at 14:53 Michael Ridland rid...@gmail.com wrote:

Like Simon Willison http://www.quora.com/Simon-Willison so eloquently
 puts it - not relying on gives you superpowers. After you reach a certain
 level of skill as a programmer, an IDE starts slowing you down, rather than
 the opposite.


O_o

I don't even.

David.
-- 
David Connors
da...@connors.com | @davidconnors | LinkedIn | +61 417 189 363


Re: Last words on AngularJS

2015-08-10 Thread Scott Barnes
I dunno, i did java up until 2007 and eclipse wasn't a friendly tool more
of a drop kick to your head... then Microsoft hired me and said i had to
learn this .NET thing and you guys needed my wisdom on
Javabah...lies... :)

It wasn't then until learned the power of an IDE Visual Studio can often
take care of the heavy lifting / burden associated with the work. I think a
lot of Java based frameworks exist because of crappy tooling so they use
the frameworks to glue the layers together in some way to help shape /
automate process.

I would say however that Visual Studio is like crack, once addicted its
hard to breakaway and when you end up going down alternative development
paths again you find yourself drifting towards Where is my daman resharper
auto complete and so on..

I do like Visual Studio Online (mac) because i'm more reliant on my mac
these days (damn you SketchApp and your seductive design`ness) and
iOS/Android dev is much easier for me anyway on that OS.

It's also what i cut my AngularJS teeth on, and I can fully see the power
that framework offers when you're forced to type the code yourself and not
rely on the ye olde Tab Dot Ship It approach to code poetry writing.

Breadth also can be a false positive... Look 1million people saw me in the
shop window vs Look 20,000 actually bought me ...there's a lot of
strawman data out there that talks to these points around the positive /
negatives associated with reach/breadth vs depth/engagements... Qualitative
vs Quantitative ftw.


---
Regards,
Scott Barnes
http://www.riagenic.com

On Mon, Aug 10, 2015 at 2:53 PM, Michael Ridland rid...@gmail.com wrote:


 This is an interesting point


 http://www.quora.com/Do-people-still-write-and-compile-programs-from-the-command-line-instead-of-an-IDE-Why-or-why-not

 Like Simon Willison http://www.quora.com/Simon-Willison so eloquently
 puts it - not relying on gives you superpowers. After you reach a certain
 level of skill as a programmer, an IDE starts slowing you down, rather than
 the opposite.

 I remember my time as a .NET developer - even though I was REALLY into
 using a lot of powerful refactoring tools such as ReSharper, Visual Studio
 still slowed be down in the end. It's a big, complex multi-gigabyte tool
 that start pretty slowly, takes ages to install, and I quite often found
 myself waiting for it while it performed some unfathomable computation in
 the background. All things that make you lose flow.

 Compare this to me nowadays, developing node.js using Sublime Text. The
 server reloads in milliseconds. Sublime loads in a second or two. I run
 tests and compile stuff with small batch scripts that I've written myself.
 I develop at*insane* speed compared to a few years back.


 *Back them, I was driving around a battlecruiser, trying to swat flies
 with it. Nowadays, I'm a ninja that can cut the flies precisely with my
 katana.*

 Oh, and if you like my writing, don't miss out on more of it -
 follow me on Quora and Twitter (http://twitter.com/mpjme)

 *Michael Ridland | Technical Director | Xamarin MVP*

 XAM Consulting - Mobile Technology Specialists

 www.xam-consulting.com

 Blog: www.michaelridland.com



 On Mon, Aug 10, 2015 at 2:48 PM, Greg Keogh gfke...@gmail.com wrote:

 Oh! TypeScript ... I forgot about that. I see a new project wizard
 template in VS2015, so I might as well lick it and see what happens.

 What you've all been saying is interesting about productivity and trends
 and such, but one overriding issue keeps slapping me: JavaScript is the
 wrong tool to construct any serious application. Notice is called java
 *Script*. It's a technically wonderful example of a dynamic scripting
 language, which combined with its slightly functional feel means you can
 mould it into almost anything, which has happened many times over (too many
 times!). As my code expanded yesterday I felt like I was building an
 airplane out of string and glue, at which point I threw in the towel. Lack
 of an IDE just compounded the situation.

 As a refresher, read the article on Shell script
 https://en.wikipedia.org/wiki/Shell_script which has some sobering
 generally applicable comments further down about the advantages and limits
 of scripting.

 *GK*

 *Many modern shells also supply various features usually found only in
 more sophisticated general-purpose programming languages, such as
 control-flow constructs, variables, comments, arrays, subroutine and so on.
 With these sorts of features available, it is possible to write reasonably
 sophisticated applications as shell scripts. However, they are still
 limited by the fact that most shell languages have little or no support for
 data typing systems, classes, threading, complex math, and other common
 full language features, and are also generally much slower than compiled
 code or interpreted languages written with speed as a performance goal.*

 *Shell scripts often serve as an initial stage in software development,
 and are often