A few things. C# is open source. The design repo is here https://github.com/dotnet/csharplang. It is also an open ECMA standard. https://www.ecma-international.org/publications/standards/Ecma-334.htm. 10 years ago you may have been right, but Microsoft has been moving in the direction of making it open source for quite some time.
The other thing is that I don't see JavaScript supplanting compiled languages any time soon because JavaScript is terrible to maintain the larger the project gets. Lack of strong typing is a big drawback for me, though there are tools to help with this such as TypeScript and Flow.
In the article you mentioned, most of the large companies you mentioned are still using traditional server side languages for the backend. For example NetFlix is only using JavaScript on the front end only. The back end is still Java. Most large scale apps would not trust their business logic to JavaScript.
One reason JavaScript is so popular is because it is the only front end language available. For backend we can choose PHP, C#, Python, Java, Ruby ... the list goes on, but for front end there's only JavaScript.
I'm not knocking JavaScript or anything, but I don't plan on using it for anything more than front end.
- Louise Eggleton
Good points, Louise, thanks - I was certainly being unfair on C#, though I still think it is a redundant and pointless (and largely pointerless!) language that was more a result of marketing than genuine need.
I guess the big thing I like about JavaScript is its flexibility: not so much technically, as in the way it is embedded in practice. It's like Wordpress - at best so-so architecturally, and nothing like as good as much of the competition when looked at from an objective design perspective, whether in terms of learnability, ease of development, speed, reliability, maintainability, scalability or whatever. However, the overwhelmingly vast number of developers, trainers, administrators and sources, not to mention an enormous range of extensions/plugins/libraries/frameworks to fill in any gaps, mean that it can do pretty much any job at least as well as anything else (often better), with the huge benefits that come from sheer scale. You'd not pick it as a backend if all else were equal, but all else is not equal because we are, as you say, pretty much forced to use it on the Web front end (for now - wasm may change that). Why struggle to stay fluent in two languages (and deal with the hiring, training, maintenance, and other associated costs) when one will do? I still struggle unnecessarily with different curly bracket languages because I constantly forget which slight syntax variants and constructs matter in which language: I'd rather focus on depth than breadth. Useful, too, that it is increasingly embedded into many native apps and operating systems. Mind you, much of this was once true of BASIC too, which is barely a rounding error in the statistics any more, so who knows?
It's too early to tell whether wasm will significantly impact JS growth. It makes it much easier to write front end stuff in other languages, and to run code at nearly native speeds, and it has a very powerful consortium behind it, so it's hard to ignore. However, the Web browser is not quite the driver that it once was, and JS has a lot of momentum across the field. My suspicion is that whether it affects JS growth will hinge as much on libraries and frameworks as on the languages themselves. Personally, I'd like to see Python replace JS - not perfect by any means, but it has the best balance I can see between ease of learning, power, elegance, maintainability, maturity, and developer community.
C# may have started as a marketing thing, ie as Microsoft's version of Java, but has some features beyond what Java has such as LINQ, Asnyc/Await, Nullable types. I come from a web programming background (Perl,PHP,VB Script, Cold Fusion) and switching to C# was the best thing I ever did. I love the C style snyntax. I can't tell you how much I dislike Basic style syntax like Visual Basic. I love the Visual Studio IDE and I love strong typing and objected oriented programming. I sound like a Microsoft fanboy (girl in this case), but actally I have been won over to C# despite healthy scepticism about Microsoft.
The reason I decided on C# is because I can reuse the code in multiple applications. We have a web application, but also several scheduled console applications and soon a smartphone app, all of which can be done in C#.
I suspect Java would have also provided many of the benefits over the interpreted languages I used in the past, though my understanding is that it is a liitle more invloved to port Java to web applications.
I don't mind having to use different tools for different things, though I do also get mixed up at times with different sytaxes for different languages. That's when a good editor/IDE comes in really handy.
Haven't learned Python yet, but am familar with its syntax and understand its appeal.
I am very interested in learning TypeScript as it addresses a lot of issues I have with JavaScript.
wasm sounds very interesting. I had a look at the link you sent. Coud be a while before it comes to fruition.
Thanks Oscar! I know very little indeed about quite a lot of stuff, and not very much about anything. Worse, the older I get, the less I seem to know. I'm fairly sure that is not how it is supposed to work.
This is a very informative article. When students are studying in the colleges and universities so their have no basic skills who should have to every student. Well, this article is very helpful for every student and I hope they must get the important points in this post. Thanks for sharing the nice information.I appreciated over read your blog entry. It is very useful for all peoples there are all possibilities to provide for this blog.And please provide some more information please visit our website you get more information regarding writing works.Refer https://www.essayguardian.com/
- charliejulien
Great post, Jon. Yes, challenge is necessary for learning and we always worries those students who feel it too difficult. Students can always ask for help but many don't even struggling fruitlessly, and those students are really at the risk of course failure or withdrawal. Maybe some proactive support or help can be considered? Students' learning reflection is a good approach of tracking their own learning, but also can give instructors some clues regarding who are in learning struggle. We probably need to think more of such design features in our courses.
- Hongxin Yan
Hi Jon,
Thank you for posting this response on here. I presume many other students are asking themselves the same question; I was for sure.
I have ran into your other posts here on the Landing page, and I appreciate your time and effort explaining your thoughts.
I will be taking COMP 602 next semester with you. Quite excited to do so.
Cheers,
Viet
Thanks Viet!
My suggestions just scratch the surface. COMP602 is quite different from COMP266, for which I originally wrote this, but there are nonetheless consistent concerns that the courses share. Those central issues of motivation - autonomy, relatedness, and competence - are (I think) the biggest ones, but it's important to remember that motivation is complex, multi-faceted, and situated. i'm a big fan of self-determination theory, on which I based my concluding comments, which (amongst other things) identifies those three aspects as the fundamental prerequisites of intrinsic motivation. However, most of us hit roadblocks now and then, even when we love most of what we are doing, and intrinsic motivation is seldom sustainable all the time. I deeply hate the worst form of extrinsic motivatlon, external regulation (the typical way we teach, that relies on rewards and punishments to push people along), and will do all that I can to limit that in COMP02, but there are forms of internal regulation that, though technically extrinsic, are self-directed, and can really help. See https://en.wikiversity.org/wiki/Motivation_and_emotion/Book/2011/Self-determination_theory for a nice, straightforward overview.
I look forward to greeting you on COMP602!
Jon
I'd say that the main reason why there is no guarantee that the sub-problems may give optimal solutions, because the commission rates are arbitrary values so as long as that is the case then the problem won't exhibit optimal substructure property.
Great proof of the optimal substructure. It is fun to also think of counterexamples for when the commission rates are nonzero!
Nisha, thanks for posting this article. I was also struggling with the I/Thou concept as it was expessed in the textbook. I was online researching it when I saw you post. Within the article there was a description of I/it and I/Thou that really helped me see the difference between the two.
"One cannot say the word I without relating to a world outside the self. These two basic words mark two ways of being in relation to the world. I-It relationships are characterized by experiencing and using objects. These are one-way relationships. The I of I-It relations understands and experiences the world as one composed of objects locatable in space and time. This way of relating to the world makes no distinction between people and things" .... "I-Thou relationships, on the other hand, are two-way relationships based in dialogue. One being encounters another with mutual awareness. I-Thou relationships are characterized by what Buber calls presentness. "
This made quite a bit of sense to me. As I consider the I/it relationship as one way it means there is not time or effort giving to responses of other individuals. The I/Thou seen as a two way dialogue not only requires one to engage with the other person but to be activite and present in that relationship or communication for a dialogue to take place. It really helped clarify the difference between the two types of relationships and grasp the deeper meaning of and "I/Thou" relationship.
The activity pages show you all the posts that you are allowed to see on the site. This is sometimes referred to as the activity stream or river. It is a great way to keep up to date with what has been posted on the site. You can configure the river to show things that particularly interest you - in your settings you can configure activity tabs to display activities from people in specific groups and your circles.
We welcome comments on public posts from members of the public. Please note, however, that all comments made on public posts must be moderated by their owners before they become visible on the site. The owner of the post (and no one else) has to do that.
If you want the full range of features and you have a login ID, log in using the links at the top of the page or at https://landing.athabascau.ca/login (logins are secure and encrypted)
Posts made here are the responsibility of their owners and may not reflect the views of Athabasca University.