|
I've been in the industry for over 30 years now and have a variety of tool as needed. I started with FORTran and FMS on a VAX/VMS platform and from there, migrated to some Windows development.
However, most of my Windows development, then and now, has been back end processing: services, data extract/manipulation processing, etc. So, I started using the tools made available and in common use in the areas I was in. That tended to be VB6, then VB.NET.
I know, flameproof suit on, but, if it works for what I need...
So.. to that extent, use what you are comfortable with that will do the job.
|
|
|
|
|
Visual Basic was one of the best things that happened to IT. The language was (and still is) easy to learn, easy to read, implemented drag-n-drop GUI building well, and simplified event-driven programming. Back in the 90's it was a game changer, a radical departure from every technology then on the market.
I was a C programmer (among other things) and moved into C++ and Java ... got out quickly. OTOH, VB made business programming quick and efficient -- and VB built a market share that I don't believe any other language has equaled.
Is there crap VB code out in the wild? Yup. There's also crap C++, Java, C#, etc. The problem is rarely the language, it's the person who doesn't know how to program with maintainability as part of the design process. I roll my eyes when I read rants against VB ... the language has been unsupported for over 15 years yet a recent survey listed it as a the 11th most popular language according to one site. [I recall other sites rank VB between 11 and 18.] Take all language rankings with a 5# bag of salt, as they all focus on specific criteria.
Top 100 Most Popular Programming Languages Of 2016[^]
Dropping support for VB6 was possibly the most bone-headed move Microsoft made, one that stands out in a sea of bone-headed moves. It cost them a lot of faithful users of their products.
Do I recommend learning VB6 now? Only for programming VBA. Knowing VB/VBA is useful in useful in writing Excel functions which beat the crap out of chaining worksheet functions together. My MS Word Normal.dotm contains macros I wrote in the 90's, still useful today. [Visual Basic is alive and well behind the scenes in Microsoft Office, as well as other products.]
These days I'm doing C# winforms and MVC with Oracle and SQL Server. Why? That is what the employer needs. I learn the languages that have market share, which ensures I have a steady paycheck. I like my job and love programming, but the languages and technologies are simply a means to an end. In themselves they rank low in importance.
|
|
|
|
|
VB.net is the latest version. Ok it doesn't resemble VB6 very much but it can do almost everything that C# can.
My only gripe with VB6 is that it didn't encourage properly structured or DRY programming.
I have recently been working with some folk who learned their coding skills with VB6. They created some gargantuan functions with literally hundreds of lines of code. It took a great deal of pursasion to get them to start making functions that do only one thing and never repeat themselves.
We're philosophical about power outages here. A.C. come, A.C. go.
|
|
|
|
|
I dabbled briefly in VB.NET then switched to C#. Due to the lack of backwards compatibility and apparent indifference from Microsoft, VB.NET lost the traction provided by the VB6 crowd and C# seemed to be the better route. Hindsight has proven that correct (IMO). I have no problems with VB.NET; however, in my area it doesn't have market share so I went in a different direction.
A don't know that any mainstream language truly "encourages" good structured programming. While I agree that some VB folks didn't understand that writing an entire 10,000 line program in one function is a bad idea ... I've run into equally bizarre things in the OO world. Twenty years ago I recall one of the OO evangelists writing about how OO fixed all the problems of procedural programming ... while I was trying to debug OO code whose original author seemed to have a truly nonsensical take on what OO is.
Good programming skills need to be instilled early in the learning process; then they become second nature.
|
|
|
|
|
C#
That's all the answer you need - now go create...
|
|
|
|
|
C++ is my language of choice, simply because it's the only language that can get me true satisfaction.
Besides, I like Qt more than anything .net has to offer.
|
|
|
|
|
|
Hi!
My choice would be Embarcadero Delphi.
I know it costs a lot more than C#, so if price is an issue go with that.
My preferred combo would be:
* Delphi
* DevExpress
* VCL Skins
For the client and
* RemObjects
For the server.
If you only need simple DB access, then ditch RemObjects.
My reasons for this choice are:
- Polish: DevExpress gives your app an incredibly clean look. As an alternative, VCL skins allow you to skin your apps natively in a number of ways
- Cross Platform: most code can be shared between Windows and Mac. Mac requires the use of FireMonkey for the GUI, but if you are smart that is not very painful
- App tethering: your apps can communicate very simply across a network or using BlueTooth
- Android/iOS package: the Pro version allows you to buy an optional pack to do mobile apps. App tethering works with this as well, so you could use your phone and update your app automatically
- No runtimes: you deploy a single exe that works across the board, even if .NET isn't installed
- Wealth of high quality 3rd party components
- Modern language: generics, anonymous functions, etc. Yeah, it's still catching up a bit, but it all works.
- DB engines that you can embed: a number of companies make RDBMS systems that you can embed in your program. An example of this would be NexusDB, whose DCU only version is completely free. Keep in mind that NexusDB is also capable of having a whole DB in memory and - if you buy the C/S version - you can even have it <b>in memory on a remote server</b>.
The flexibility, raw power and freedom is just a sight to behold.
A free starter version exists but I don't think it lets you do databases. Worth playing with though.
|
|
|
|
|
I use RPG because it's a natural Business language with integrated record level database access. The variation I use is a Visual Studio Plug in language from ASNA.
|
|
|
|
|
A computer programmer exemplifies Human thought, translating in effect each brain-step to a computer command. It is therefore ABSOLUTELY necessary that the programming languaged used is as close to Human thought as possible. This is exactly where Visual Basic scores High. But I do appreciate the need for other languages.
Let us accept the fact that our whole logic is built around our natural language, that is the HUMAN language. Therefore, the programming language that is closer to the HUMAN language is more suitable for expressing algorithms while at the same time it reduces logical errors in programming. In other words, "IF... THEN... ELSE..." is far more clear and closer to the HUMAN language than if... {... }...
Professor E. J. Yannakoudakis (eyan@aueb.gr)
|
|
|
|
|
DrBones69 wrote: why you have chosen a specific set of tools used for creating the majority of the projects created and what led you to the path you're on
While I answered this obliquely in a reply to a post in this thread, I haven't answered directly.
My choice of languages and technologies is driven primarily by market share. Companies typically hire for specific technologies so to maintain a consistent paycheck I learn whatever is in demand. In the past 30 years I've seen numerous technologies rise to stardom and fade into obscurity, so I focus on what I project will have market share in the foreseeable future -- with the understanding that I'll learn new things as the current ones fade.
The simple fact is that as much as I enjoy programming, my focus is having a paycheck. My experience is that having a paycheck beats the heck out of NOT having a paycheck.
But market share is not the only consideration -- what *I* want to do is important. We spend too much time at work to do something we absolutely hate for long (although I've done that when the economy was less than stellar).
Most surveys I've read recently put C# at 6th or 7th in popularity. It seems to hold consistently in that place year after year, and C# has good market share in my area (lot of Microsoft-based shops). I like C# and database, so that's my choice.
My advice to everyone is to watch the job boards, even when you have no interest in jumping ship. Stay abreast of where the paying jobs are, and take the trade rag articles on upcoming languages with a grain of salt. Until someone is willing to pay for a skill set, it is of limited value.
|
|
|
|
|
Thanks Bryan!
It seems that C# has the majority vote so far. But I still find myself feeling the strong pull from C++ and Cobol calling to me. I'm always willing to learn any language, technology, helper tools etc... While in the process of learning, I sometimes yell out loud, "SQUIRREL!" lol. (Might have something to do with ADD or ADHD, even though I've never been diagnosed). Thanks again for your wise input. Sounds like C# is waiting for me, so wish me luck but it shouldn't be a big challenge.
-Randy
|
|
|
|
|
Glad to be of service! You don't need luck, just perseverance.
Your response made me think of something else, the learning process. As IT people we will continue to learn the remainder of our careers, or we will stagnate.
Learn COBOL and C++ if they interest you. The value of learning COBOL for a any programmer is that it teaches us to think differently. So does VB and C and any other procedural language. Dabble in F# or Lisp or any functional language for the same reason. Learn Oracle, SQL Server, and/or My SQL -- yet another paradigm. [NoSQL and MongoDB are on my list of things to learn.]
[IMO we should learn C early in our training, it provides a background for learning many other languages including C++, C#, and Java. I haven't used C professionally in more than 25 years, but the lessons learned influence everything I do, and I still have my dog-eared copy of K&R.]
The more ways we learn to think, the faster we learn new things, the easier it is to keep up with technology changes.
In my first job I was tasked to teach SQL to a woman who had been writing COBOL for 30+ years. She was amazing with COBOL -- if it could be done with COBOL, she could do it. If it couldn't be done with COBOL, I'd give even odds that she'd do it anyway. But she couldn't grasp SQL. IMO she spent too many years thinking only one way, and couldn't make the paradigm shift. [COBOL and her age didn't factor in, IMO, it was the difficulty of thinking in a totally different way.]
That was a warning to me to keep current and keep flexible.
I mentioned I'm currently doing C#/MVC. To do this I'm using C#, JavaScript, HTML, XML, Razor, SQL Server (including DB design and T SQL), Oracle (we are migrating databases), Microsoft's version of MVC including Entity Framework, and probably more that I can't think of at this moment. Flexibility is a requirement for this job. 
|
|
|
|
|
Thanks again, Bryan.
I just read my reply to your post again and I think I should clarify when I said, "It looks like the majority is with C#, but I still feel C++ and COBOL calling for me". I meant that these are the languages (C, C++ and COBOL) that I have been coding in all of my life for business and my own "hobby projects" for years.
The point of my first post was to get opinions, feelings, why's and other aspects of other programmers, white hat hackers, developers and computer code insomniacs why they have chose the road their on and if their road forks in many directions .
You have a very great outlook on the way people seem to fall into a "wagon trail" and they can't seem to get out of it. Programmers do tend to stick with what they know and what has been working for them. But, with a lot of languages, their usefulness will end someday and where does that leave the stubborn programmer?
Anyway, I am always delving into something new to learn, but I always seem to go back to COBOL or C++. These languages have never failed me with their stability, business reliability and my knowledge of their power. I HAVE THIS NEED TO KNOW IT ALL, but I know that as long as I live that this is impossible. (Not impossible if things never change lol)
-Randy
|
|
|
|
|
Randy,
Yup, I completely misunderstood your background. Communication via text has its drawbacks ...
People are creatures of habit -- most of us tend to stick with what we know. It isn't surprising that many try to stay with what they already know. When I got out of college into my first job, I had a driving need to know everything (you understand this). That drive served me well in setting the stage for a good career. In recent years I realize the drive has diminished ... but recognizing I need to stay current keeps me focused on learning new things.
One thing that is making me wonder -- I can't recall anyone using COBOL for personal projects. Pretty much any other language, but not COBOL. What kind of personal projects do you do with COBOL and what compilers?
|
|
|
|
|
Now a day, I use these three exclusively: C#, JavaScript and SQL. With these two I can build just about any application web or desktop. I know, lots of developers don't like JS, but I like it, especially ES6.
I try not to use third party tool/libraries especially those all-in-one framework tools that are bloated, like DevExpress, Telerik, extjs, etc. I do use third party (open source) libraries, but only those that are light weight and specific. I event shy using jquery.
|
|
|
|
|
I do like your setup, because that's usually what I tend to lean on with the exception of C#. When I'm not using COBOL I turn to C++, SQL with a little bit of VB. Thanks for the input, Leng.
-Randy
|
|
|
|
|
It depends. I do very little visual studio work, and very little web programming.
I support COBOL and various client server systems, many still written in Delphi!
I chimed in because I am the outsider.
Honestly, as long as you are doing solid with your customers, you are fine.
I work with people who are 99% Visual Studio and all C# (and I have done a bit
of C# to help out on projects, and sit through the code reviews).
Why do we stick with Delphi? We have literally a million lines of code, and huge libraries.
We can add features quickly and easily. We are like short order cooks who produce small automation and integration pieces.
But we are doing more projects on the web with C#, and still support PHP files...
Enjoy!
|
|
|
|
|
COBOL is a great language, but there are so many programmers that cringe when I say COBOL lol. I'm going to learn and write my next project in C#. Thanks for your input...
Randy
|
|
|
|
|
Well, lately, I find that I prefer C# using MS Visual Studio. This allows for rapid GUI design and coding, plus C# offers an excellent debugging environment due to how it is designed. The only other language I really consider using is C in the event that I need something that runs as efficiently as possible. I could go right down to assembly or machine code, but that kills portability so I have not done so in decades. Sure I have learned and continue to learn others but I really do not seem to end up wanting to migrate to them.
|
|
|
|
|
Front end:
JavaScript (Angular, React)
Middle: C#, and Node...try it out with EdgeJs and you can have Node consume C#.
Backend: Sql Server, but starting to move towards Cassandra and Redis.
|
|
|
|
|
C#, WPF, and Syncfusion controls for professional, modern looking application.
You can also use MahApps.Metro. I have used them both.
They are needed because Windows' standard WPF appearance is really ugly, and it's too much of a hassle to skin them yourself.
|
|
|
|
|
I would say there are 2 competing trains for thought for this question.
- Use the best tool for the job.
- Use what you know the best.
As a project, you can assess that maybe C# with .net would be the best fit. However, when you look at the skill set of your team and find they lack the knowledge. You are left to either train them up, which may take some time to make it error and bug free, or hire in the staff.
Conversely, if your team says, well we can make that in Java, in X time, for Y budget, and it wont look as different. They have the knowledge to make it far less error prone and bug free.
mixing the two: deciding on what language or tools to use should be weighed against Skill, Knowledge, Suitability
C# reduces knowledge requirement to get program written (such as memory management)
C or C++ may be closer to the OS, hench can write higher performance code, at the cost or requiring a higher knowledge of the language.
|
|
|
|
|
I'm a former aerospace engineer that of course had a background of BASIC in high school & FORTRAN in college. In the early '90s I took a course through my place of work in C, and the utter elegance of that beautiful language completely captivated me. I went on to learn C++, which I also found elegant, even the tricky parts. I then learned VC++ and became completely smitten by the idea of how easily I could develop a regular Windows app, and decided to switch careers into software development. When .NET came out, while I had a few issues with some of the hokey aspects of C# like the fact that a fundamental object is passed by value whereas any other object is by reference and some peculiarities of callbakcs, I did like the way that abstract classes & virtual functions were done, and of course the memory management - but I what I really liked was the way that it set up the forms & data binding in a very elegant way as opposed to the kludgy way that VC++ did it. I now consider myself a .NET C# developer, albeit "early retired" since there seems to be no market demand for this skill anymore.
|
|
|
|
|
I recently converted my laptop to an SSD (from HDD) and I'm realizing the benefits every day.
Android Emulator
I hadn't given it extra thought but I started a new Android project and started the emulator the other day and it started so fast I wondered how it was possible.
Then I remembered, the entire Emulator OS is really virtual memory (run from disk for the most part).
I just started my emulator running Android Lollipop and the Google API and it goes from zero to fully started in about 5 seconds. It was probably somewhere around 1-2 minutes with the HDD.
If you're an Android dev and running emulators like this (and you have an HDD), you really need to consider converting to an SSD.
|
|
|
|
|