I think C# has always sacrificed clarity of syntax for high-level functionality. Many people seem to like it, as it increasingly enables more to be done with fewer lines of code (though I am not sure why that's important) but personally I find it too high-level now for my liking so I rarely use it. No one language will ever appeal to everyone in my opinion.
BotReject
Posts
-
I hate recent C# versions! -
Your opinion ob language to create a website / blog.I agree, you put that very well. There is no 'good' web development tech in my opinion - it's all a bit of a hack. None of the development tools really focus on what web pages are for - displaying information. The way MS keep changing C# and the ballooning complexity of their tools (such as ASP.NET) is why I dropped C# and .Net, though I can see that they would be useful for large-scale and very complex enterprise apps. I agree that Python has a few hideous oddities in its syntax (its use of whitespace is irritating and the propaganda that it is an object-orientated language is blasphemous). However, I am currently learning Python just so I can see what the fuss is all about, but I can't see myself using it for much except perhaps for online AI apps (though I am looking into JS as an alternative here). I quite like JS with html 5, as these are of course easily portable, and although I don't like PHP I use it for server-side tasks along with MySQL. I guess it depends on how complex a web site needs to be, but then again I think people trying to do too much with web apps may be part of the problem - I think its better to keep web apps simple and functional where possible.
-
If you could have only one word on your gravestone...Offline.
-
When did syntax become so fussy?I always knew it would come to this. I can see the case for using lambda functions in certain situations but I always regarded their introduction into C# as a bad move due to their potential for abuse. Sometimes adding N dimensions of abstraction is not a good move. I mean, shall we all start doing maths in base 90 just to use fewer digits? How about we join together n to the power of p math opeartors into newer short-hand operators, just to make that calculus even harder to follow? Just think - one hundred lines of calculus could be comprised into a single line!
-
CCS is worst language ever createdWhat bugs me is how unintuitive CSS is - simple rational commands have irrational behavior. Personally I like web pages that are simple and content-driven, without too many frills, bells and whistles - like they used to be! I often despair at the state of web technology - what should be a simple task of laying out information on a screen can become 'black magic' as you say. It's bizarre that we have arrived at this state of affairs.
-
Do you think much about your shorts?In the old days we had to worry about every byte of memory and every tick of the clock, but with modern computers, it goes without saying that memory and speed are rarely limiting, unless: you were looping objects or something large, or you were designing a real-time app like a missile-tracking system. Some coders opt for 'better performance' even when it actually makes no significant difference, simply because they can.
-
OO Software design epiphany - it might not matterI can offer encouragement rather than practical advice (since I have no specifics about the problem you are trying to solve). You are absically correct: encapsulation is the most useful feature of OOP and the only feature code needs to be OO. (Many claim that certain languages are OO simply because they support an optional 'object' construct, but unless encapsulation is enforecd, with the option of strong encapsulation, then a language is not OO in my opinion). Inheritance should only be used very sparingly - it is good for complex frameworks that have to support a multitude of applications, like teh Java framework, but not useful at all in most cases. As for generics ... I'm still thinking about that one. I would say that generics are about more than code reuse. Do you really want a type as a parameter in your application? Is it really saving hastle to avoid explicit type casts? Who is the end-user of the code and is it more important to detect type errors at compile-time rather than runtime? In the end you have to weigh-up the hastle to you as coder against the hastle to the user! That probably doesn't help, but it was an interesting query.
-
C# Decimal ArithmeticIt sounds to me like you could write an interesting article on this application of decimal.
-
Why is XML?I remember when XML was new and how it was hyped to be the best thing since sliced bread. Then I used it for a database / C# project ... and decided never to use it again! (It didn't help that the C# class libraries for this sort of thing were utterly naff in C# 1.0). I have found no desirable use for it since (don't get me wrong I am sure it is useful ... in some distant galaxy ...).
-
Are you really, really, really sure you want to install this update?I got so annoyed with Windows 10 updates that I totally disabled the updater on my PC. Unfortunately, I can't remember how I did it and I couldn't switch it back on if I wanted to (standard fixes don't work). I rely entirely on anti-malware now. Then again, I ran XP for years after it expired with anti-malware and I never had any problems. MS needs a better model.
-
I was going to write an article about how pointers aren't confusingI'm in two minds on that: it is certainly nice when coding to have options and 'power' to operate at a lower level when it seems like a good idea, but historically the misuse of pointers by programmers caused absolute havoc.
-
I was going to write an article about how pointers aren't confusingI think I would agree that pointers are quite intuitive, but I still prefer the way Java, for example, takes away the need to deal with them directly, though one still ought to understand what is happening under the hood. Constructing a linked list in Java takes away the need to think about pointers at all (so be careful those who use this as an interview Q). I like languages which allow me to spend more cognition on the business logic rather than its implementation. Also, modern compilers can implement code better than most (if not all) of us humans can. That said, there is something aesthetic about pointers, more so when you deal with memory management in assembly langauge. I quite like the fact that C lets you get to grips with these lower level devices, though in my work it's more of an aesthetic curiosity than a necessity to know these things.
-
Fun with JavaEvery object in Java inherits the equals method from Object, but the default implementation simply compares the object references (so to be true it must compare the same object instance with itself). It is part of the specs that every class has the equals method implementation replaced to provide the desired functionality.
-
Is Python slowly losing its charm?I never really got into Python, everytime I try something about it bores me. It seems to me that it would be good for processing lists which is possibly partly why it's so popular in AI: using numerical methods to update all those nodes seems well suited to Python (though I still prefer Java for this personally). Perhaps it just needs more jazzy tutorials to make it appealing.
-
Is CS not meant for beginners or do I have severe ADHD?My background is in science, though I did sit an exam in Java (writing code with pen and paper) and I code a little bit as part of my work (Java, JS and some PHP mostly) so I can't speak about CS specifically and so what I write might or might not be relevant! First of all: have you actually seen any past or mock exam questions? Maybe you are overthinking it, lecturers generally focus exams on a core number of themes as they don't expect students to know everything. Often the same recycled questions are dressed differently. Doing a degree is just the beginning, the real skill comes later when you put it into practice for a few years. Lecturers know this and usually throw a lot of stuff at you but test mainly the core plus their own pet favourite topics (of course they make it extra hard to earn a distinction though). They often also place emphasis during lectures on what they aim to examine. It pays to be 'in-tune' with the lecturers so attending all classes certainly helps. Exam Qs often look harder than they really are. That said, to get a high grade requires more than the minimum asked for. Try to understand what they are really looking for and focus your efforts accordingly. Second point. When I was learning to code I dabbled with several different languages, which was confusing at the time but paid off later. I went from struggling with the material, to coding but getting frustrated with bugs and other issues, to simply enjoying coding as it became more effortless with practice. Something just clicked one day, but only after many days of frustrating work. 'Rome wasn't built in a day', as they say. Third point. Once you learn one language thoroughly, others become 10 times easier. Perhaps rather than just learning a bit of each, focus on one you feel most comfortable with first then the others should become easier. You can't learn several until you have learned one. Reading books helps, but in the end writing code to solve your own problems is probably the best way to learn. Online hands-on coding tutorials can be very useful. Finally, if it really seems too tough then remember you can get a coding job without a CS degree, you just need to be confident with the required skills and tools (and highly skilled in interview techniques).
-
Why isn't C# more popular?I was part-way through a professional C++ course, just beginning Windows programming, when C# first came out and the course switched to C#, which annoyingly meant an extra year of study. I liked it at first, though the class library (v.1) was crap in places, and the push to make XML universal flopped (thankfully), but at least the language was nice and ideal for Windows apps. Then windows apps went out of fashion and C# kept pumping out new versions (in that irritating MS way). The class libraries certainly improved but they made too many fundamental changes to the language for my liking and I found myself wondering if I was coding anything in the 'right way'. Then I discovered Java and never looked back, although it is not great for the web, I use JS and PHP for that (I don't like ASP.NET). Java suites my intuition and with it the code just flows, I don't have to worry about all the quirks of C# and its often cumbersome syntax. C# meanwhile has focused on ASP.NET which I absolutely hate and could never get into. C# does have some nice features though and I continued with it for some years just on a hobby basis, but I haven't bothered with it for the past few years now.
-
Just dusted off my old maths booksI'm afraid that with maths it really is a case of 'use it or lose it'. I'm sure if you persevere then in a few months time it will suddenly seem much easier.
-
A foolish mistakeI wouldn't blame Java for this, it's probably more an issue with the IDE used to handle Java. In NetBeans I give my project names exactly the same name as the main class, and the package name is the same but all lower case as it must be = no issues. NetBeans did change the way it does all this stuff by default some years ago as I recall. Students often fail at this task, but with this simple convention nothing goes wrong.
-
Is a programming language's aesthetics important?Good question! Java and, dare I admit it JavaScript (without fancy add-ons), are my favourite programming languages, though I quite like traditional (i.e. non-MS) C++ too. I think the reason why I prefer Java is precisely because I do find it aesthetically pleasing. I used to code in C# but over time it morphed into something I found aesthetically displeasing, so I stopped using it. I think you hit the nail on the head - but aesthetics are of course a personal thing and not everyone will agree on which language is the most aesthetic.
-
Roman Empire: The reason of the lack of technology'Necessity is the mother of invention' - since Rome ruled the known world and had the strongest military force perhaps they didn't feel much need to innovate any further. One might think that better medicine would have been an incentive, but they probably believed their fate to be in the lap of the gods.