+ Post New Thread
Page 3 of 3 FirstFirst 123
Results 31 to 39 of 39
Raspberry Pi, Arduino & Other SBCs Thread, Is bash a programming language? in Technical; Originally Posted by localzuk And kids in our schools will be coming across bash installed on Windows regularly won't they? ...
  1. #31


    Join Date
    Jan 2006
    Posts
    8,202
    Thank Post
    442
    Thanked 1,032 Times in 812 Posts
    Rep Power
    340
    Quote Originally Posted by localzuk View Post
    And kids in our schools will be coming across bash installed on Windows regularly won't they? Or supercomputers, servers or telephony systems? No. Why not just go the whole hog and teach assembly in year 2. Its used in embedded systems all over the place, and its very quick at processing things...

    You have to draw a line about what is likely and what is niche. Bash, even though common in server, is niche.

    Also, you can't say that about servers - there's no real usable metric to draw that conclusion, as most stats about it talk about web servers. If you look at hardware sales, then Windows beats Linux, but neither are really accurate.
    Yes I think kids who are likely to be good programmers will be coming across BASH. BASH is already available for 70% of smartphones - chances are they have them in their pockets already.
    Are there more Windows servers than all the ESX, BSD, Apple, Solaris, Linux and other unicies put together !?!?

  2. #32

    Join Date
    Dec 2012
    Location
    HÝvik
    Posts
    4
    Thank Post
    0
    Thanked 4 Times in 1 Post
    Rep Power
    0
    Quote Originally Posted by pcstru View Post
    Nice post but I think you may have missed the point of university. It wasn't to produce solutions to problems that could be used, it was to teach you programming. You won't learn much about sorting algorithms by simply calling a sort program. ... The first is complexity. The second is usability.
    The point of university is to learn how to think - not to learn how to code. Problem is that programming is "still new" in an academic sense so they focus on the tool instead of the solution. Coding is a vocation. It's still best learned in a vocational environment and I bet you a lot of money that the majority of people actually coding are people who are either self-thought or vocationally thought. Most people who do a programming course on university level never actually code ever again after that. And I know the reason for that: it makes no sense to still teach low-level stuff in this day and age. Sure ten years ago most systems would have to be built from scratch - but today; if you can't find software for it or do it with scripts you are either crazy or you have to learn how to code. But if you are that brilliant that you need to code a kernel or a protocol or something like that - you already know how to code.

    Your sort-example is actually brilliant. Sort-algorithms are mathematical problems - you just implement them using C because you want to squeeze as much as you can out from it. And maybe once in a while there is a need to do something like that - but how many people actually need to do something like that? How likely is that?

    Complexity? So when a new version of Python comes along - that's not complex? When a .NET-upgrade kills your whole design because of some security stuff that is not complex? Tried running 16-bit wintel applications lately? Tried running a 30 year old script on unix? Do you see? You are talking about complexity but you are looking at the wrong suspect. I never deal with any complexity - bc never changes - ls never changes - bash/perl never changes - the unices never changes. Tried maintaining 455 versions of an Android app lately?

    As for usability.. Don't really see that. Most stuff people do every day has scripts behind them. Writing a web-frontend is as simple and fast as it is easy. Writing a small GUI the same. Users know how files work and folders work. Users can actually handle a nice CLI-menu.. But most of the time I just automate all of it - the users never see it - people get less to do and we get more of their brain-time. Win-win!

  3. #33

    Join Date
    Dec 2012
    Location
    HÝvik
    Posts
    4
    Thank Post
    0
    Thanked 4 Times in 1 Post
    Rep Power
    0
    Quote Originally Posted by localzuk View Post
    Sure, knowing Perl is a very useful skill for a linux admin, just like knowing VBS or Powershell (now) is in Windows, but it doesn't teach you about polymorphism, or inheritance, or any other programming techniques which someone who is training to be a programmer needs to know. Not to mention, you do realise that Windows is the most commonly used OS in the world, and is the one they see in their homes and businesses. Linux for all its brilliance is not the software they will come across, and therefore learning bash is somewhat pointless and niche for kids starting out in the world of computing.
    Why wouldn't you learn about polymorphism, inheritance or other programming techniques? I don't see how not teaching about their existence helps the situation. But seriously what would you rather want: A bunch of people that barely knows how to solve something in a very very very time consuming and overly complicated way that then have to learn how the real world works OR a bunch of people that can solve most any problem really fast and then choose whether they want to learn how to improve components of their solution. It's as easy as that really.

    Actually 70% of the worlds servers are unices. Last time I checked 90% of the worlds smartphones where unices. 99% of the worlds tablets are unices. And right now unix is on the most popular brand of computer in the US. The relatively small world of Windows is now getting even smaller. It's gaming-PC's left now and even they are moving to linux last time I checked. Most of the users want web-ui or maybe a native frontend to a web-thing anyway. Learning how to do SWING or visual studio-stuff just won't cut it anymore. Similarly I think that students poking around C to print to STDOUT is ridiculous compared to a 9 year old girl running a tweeting pot-plant on linux. People need to learn how to actually do stuff. We didn't learn anything relevant in uni: SOAP? No. XML? No. JSON? No. Perl? No. Obj-C? No. NoSQL/SQL? No. Automation? No. Java? Yes! SWING? Yes! Solving a stupid problem with N queens on a chessboard? Yes! Writing to stdout with C? Yes! But something I could use later? No. Glad I spent my weekends drinking beer and reading about Perl.

  4. #34


    Join Date
    May 2009
    Posts
    3,322
    Thank Post
    293
    Thanked 890 Times in 668 Posts
    Rep Power
    342
    In my experience (30 years of software development), many coders are "self taught". They are the ones who have the greatest difficulties in a professional development environment where code needs to communicate it's function as well as execute it. While overall university might aim to teach people how to think, to learn programming you need to *do* programming. To learn how to think like a good programmer you need to be exposed to good programming practice. Sure you may never need to write a sorting algorithm but you should be confident that you can and you should be skilled enough to know a good one from a bad one.

    In complexity I was referring to the fact that stringing together multiple component systems into an overall whole tends to introduce additional complexity. You have the whole of python to deal with sure, but then you have the whole of a Unix, the applications, the network infrastructure that is providing the service pipes between data sources etc. It's not that it won't work, just (and again IME) that the risks aren't contained within a single code base that you fully control. For scripting that's not usually much of a problem because the scripts themselves tend to be fairly trivial. But if you are looking for scripting to be a replacement for programming, then that starts to fall apart.

    But then there I think is the philosophical nub of your problem. You want to make a firm differentiation between scripting and programming and then you are upset because you are being taught programming rather than scripting. Perhaps you should have chosen a scripting course or taken a vocational route? End user applications are always likely to be developed using programming languages not scripted together from other component parts. There are sounds business reasons why this makes sense, but if you want to do scripting not programming then that is a choice for you. Both are useful skills.

  5. #35

    localzuk's Avatar
    Join Date
    Dec 2006
    Location
    Minehead
    Posts
    18,381
    Thank Post
    525
    Thanked 2,615 Times in 2,021 Posts
    Blog Entries
    24
    Rep Power
    891
    [citation needed] - your numbers are near to those provided by organisations like W3Techs. Basically, limited to web servers. There are a lot more servers than webservers, so as I say, it is difficult to find a number for the server market.

    You didn't learn about XML or SQL in uni? Then I would say your course was somewhat flawed. My course covered web technologies, so SOAP, XML etc..., database systems including SQL and other non-SQL systems (which were esoteric to say the least, but covered concepts used within non-relational databses). Sure, Java and Swing were covered as they are tools to teach the basics of programming in. We also had examples given to us in Pascal, Ada, Lisp, C, and some others.

    My university course set me up to quite happily design and implement several programs where I work now - a cashless catering system and a merit tracking program. If I'd just done Bash scripting? I wouldn't have been able to build those systems plain and simple.

    What I want is a generation of kids who understand what they have in front of them. How it is communicating, how the program will have been put together, how to therefore diagnose it when it is misbehaving etc... Most applications that they come across will NOT be scripts, they will be complex systems written in c/java/.net/python which interact with databases, and have highly interactive interfaces. Bash is not suited to teaching about that.

  6. #36

    Join Date
    Dec 2012
    Location
    HÝvik
    Posts
    4
    Thank Post
    0
    Thanked 4 Times in 1 Post
    Rep Power
    0
    Quote Originally Posted by pcstru View Post
    In my experience (30 years of software development), many coders are "self taught". They are the ones who have the greatest difficulties in a professional development environment where code needs to communicate it's function as well as execute it. While overall university might aim to teach people how to think, to learn programming you need to *do* programming. To learn how to think like a good programmer you need to be exposed to good programming practice. Sure you may never need to write a sorting algorithm but you should be confident that you can and you should be skilled enough to know a good one from a bad one.

    In complexity I was referring to the fact that stringing together multiple component systems into an overall whole tends to introduce additional complexity. You have the whole of python to deal with sure, but then you have the whole of a Unix, the applications, the network infrastructure that is providing the service pipes between data sources etc. It's not that it won't work, just (and again IME) that the risks aren't contained within a single code base that you fully control. For scripting that's not usually much of a problem because the scripts themselves tend to be fairly trivial. But if you are looking for scripting to be a replacement for programming, then that starts to fall apart.

    But then there I think is the philosophical nub of your problem. You want to make a firm differentiation between scripting and programming and then you are upset because you are being taught programming rather than scripting. Perhaps you should have chosen a scripting course or taken a vocational route? End user applications are always likely to be developed using programming languages not scripted together from other component parts. There are sounds business reasons why this makes sense, but if you want to do scripting not programming then that is a choice for you. Both are useful skills.
    I agree. Self-thaught people are a royal pain. It doesn't work. They don't know enough about datatypes and other fundamental things. But I have yet to work with someone that does code and have a uni-background. So I think the vocational route works well there. Yeah. But *do* programming though,.. I would rather work with a thirteen year old girl that knows how to interface twitter with her GPIO than with a guy that knows how to waste time with UML.

    Complexity for me is when a piece of software tries to do too many things at once. Simplicity is a design where you have a thing that does metadata, a thing that does data, a thing that does control, a thing that does interfacing with users, a thing that does interfacing with machines. That's normally what we teach people to do when they are coding - but why do all of that yourself when we have a lot of good systems for doing that already? SQL, files, scripts, web, soap.. etc..

    I know coding *and* scripting. The thing is though: I almost never need to do it. Most of the stuff I need to do have already been done before. Ten years ago that was not the case but today it is. I think coding is great. I love it. But I rarely use it. In fact I try to find stupid solutions to problems just to get the chance to code nowadays. Both are useful I agree - but I think that scripting is way more useful today. But then again. Things might change. Maybe we get some new device in the future that needs it..

  7. #37


    Join Date
    May 2009
    Posts
    3,322
    Thank Post
    293
    Thanked 890 Times in 668 Posts
    Rep Power
    342
    Quote Originally Posted by skeldoy View Post
    I agree. Self-thaught people are a royal pain. It doesn't work. They don't know enough about datatypes and other fundamental things. But I have yet to work with someone that does code and have a uni-background. So I think the vocational route works well there.
    I wouldn't like to try and estimate, but I worked for a long time for a quite large software house and there were a "fair few" (Scottish quantity n>1 n< a lot) who did computing or similar at Uni. Some were very good, some ... not so much. I don't see any particular reason to expect otherwise.
    Complexity for me is when a piece of software tries to do too many things at once. Simplicity is a design where you have a thing that does metadata, a thing that does data, a thing that does control, a thing that does interfacing with users, a thing that does interfacing with machines. That's normally what we teach people to do when they are coding - but why do all of that yourself when we have a lot of good systems for doing that already? SQL, files, scripts, web, soap.. etc..
    Complexity is a measure of the information capacity of a state space. At simplest, the total number of bits needed to represent the system. My 250 byte object file is simpler than a 2K bash shell script which relies on 100's of KB of other compiled object files.
    I know coding *and* scripting. The thing is though: I almost never need to do it. Most of the stuff I need to do have already been done before. Ten years ago that was not the case but today it is. I think coding is great. I love it. But I rarely use it. In fact I try to find stupid solutions to problems just to get the chance to code nowadays. Both are useful I agree - but I think that scripting is way more useful today. But then again. Things might change. Maybe we get some new device in the future that needs it..
    Well, OK. I'm not now sure where you are coming from! I don't know of any modern development environment in which you would have to resort to (say) actually writing a sort algorithm from scratch. Most development environments tend to have excellent coverage of common tasks in the supplied libraries. These days the libraries will encompass API's and connectivity to the object models of the host Operating Systems. A lot of programming is dull "monkey work", get/put/validate/analyse data. I've made choices about development environments based as much or more on the people skills available as the intrinsic virtues of (say) C# vs PL/SQL.

    Personally I don't even see a nice solid differentiation between scripting and programming. Complex scripting is programming. Simple programming is scripting. Languages pro-port to be many things and some real crap seems to rise to the top of the "in use" pile (here we are on a functional forum written using php. PH ferking P - who dreamed up that mess!!). These days it's not just academic egos that fuel the pointless evangelism of C++ vs Java vs C# etc, there are powerful marketing forces at work too. And scripting is great - the glue of the internet could probably be described as a bunch of scripts. But try writing something like "rise of flight" in Bash. And find it on the ATMega328 that I'm trying to persuade to be a PID for a sous-vide cooker. Shift F11 on excel doesn't pop up a menu - "would you like to use VBA or drop out to a bash shell. Scripting, Programming, they all have their place. Be a master of one, all or none. The real blinding jaw-on-the-floor-miracle of our age is that we get a choice.

    I dropped a USB stick the other day and I didn't have to sort out the mess 1000's of mixed up punched cards. Which is nice, because the USB stick is quite small so sorting out the cards must have been absolute hell.
    Last edited by pcstru; 11th December 2012 at 06:48 PM. Reason: clarity, spelling, glaringly horrible errors of logic, rationale and sanity.

  8. #38

    unixman_again's Avatar
    Join Date
    Nov 2011
    Posts
    893
    Thank Post
    35
    Thanked 170 Times in 130 Posts
    Rep Power
    141
    If you dropped your punch card deck, you simply ran it through the old IBM 082
    800px-Punch_card_sorter.JPG
    File:Punch card sorter.JPG - Wikipedia, the free encyclopedia

  9. #39
    ijk
    ijk is offline

    Join Date
    Sep 2009
    Location
    M11/A11/A1307
    Posts
    47
    Thank Post
    9
    Thanked 8 Times in 6 Posts
    Rep Power
    12
    Could you say that bash is a programmable interface to some standard libraries like ls, wget, ftp, ssh, grep, sed, awk, touch, etc?



SHARE:
+ Post New Thread
Page 3 of 3 FirstFirst 123

Similar Threads

  1. [Website] 10 Bizarre Programming Languages
    By EduTech in forum Jokes/Interweb Things
    Replies: 2
    Last Post: 31st March 2009, 12:26 AM
  2. Sratch - Free Picture based programming language
    By atfnet in forum Educational Software
    Replies: 3
    Last Post: 19th June 2007, 01:33 PM
  3. "Script" programming language
    By mighty.grey.eagle in forum Coding
    Replies: 0
    Last Post: 21st January 2007, 03:01 PM

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •