|
SawmillTurtle wrote: And if I'm writing a program that runs on Windows, what else would I use?
I'd suggest Python. You can code it on Ubuntu and use Tk or similar for the UI.
Latest Article - A Concise Overview of Threads
Learning to code with python is like learning to swim with those little arm floaties. It gives you undeserved confidence and will eventually drown you. - DangerBunny
Artificial intelligence is the only remedy for natural stupidity. - CDP1802
|
|
|
|
|
Blind, ignorant hatred is stupid; it leads to extremism.
And your "intense hatred for any and all things Microsoft" is extreme already: it has blinded you to the best IDE on the planet, bar none: Visual Studio. In all seriousness, it is extremely good.
And C#: that's a Microsoft product as well. And so is .NET, which C# is reliant on. And Windows, on which .NET runs. And SharpDevleop, which runs on Windows only.
And to be brutally honest, if you have got up to DataGridViews, BindingLists, and Generics - but you have no idea what "casting" is then you need to go right back to the beginning and learn C# properly this time!
I suspect it would save you a lot of time in the future ...
Sent from my Amstrad PC 1640
Never throw anything away, Griff
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
My dislike of Microsoft comes from many years of opposing their policy of "Do their thinking for them. Microsoft knows best." It's not blind hatred. It's a lifetime of being told that I'm not smart enough. Take the Firewall in Windows 10. I use my own firewall most of the time, but for the longest time (not sure if it still does it anymore), if you turned it off, Windows would remind you that if you leave it off too long "we'll turn it back on for you."
Excuse me? I don't want other people doing my thinking for me. I'm capable of setting up my own firewall. I can even tie my own shoes and I can brush my own teeth, too. Know what I mean?
As for casting, did I really miss something that was such a monumental foundation stone? Oh dear. Guess I'll need to do some more Googling and figure out how I could make my life easier.
Thanks for the advice.
|
|
|
|
|
As a former UNIX developer, I have to agree with Griff - VS is wonderful, C# is a damned fine language and SQL Server is as good as, if not better than any other RDBMS out there.
.NET is a steep learning curve, a lot of what seems odd or irrational at first makes perfect sense when you get deeper into the platform.
Whenever you find yourself on the side of the majority, it is time to pause and reflect. - Mark Twain
|
|
|
|
|
PeejayAdams wrote: C# is a damned fine language It is, yet it has some "features" that make me want to stick with C++.
Mostly I dislike the impossibility of separating function definitions and declaration in different files (like header and cpp). I use the header as index into the cpp and I really find C# messier in that regard.
Second thing I don't like is the difficulty of casting between basic data types: I may want to load a byte stream, read some header and decide to treat the content as a short int stream. Easy to do in C/C++, not that much in C# without using the unsafe block - I don't really like it as it puts a nice hole in the reason I'm using C# in the first place.
Third thing, it makes the usage of the native resources harder instead of simpler - that is not a problem except that my line of work requires native resources so C# actually hinders me more often than not.
PeejayAdams wrote: .NET is a steep learning curve, I agree, it is much much steeper than Windows API... especially considering the utter crappy quality of documentation.
I don't need a list of the members of a class, I need to know what it's supposed to do, what problems does it solve and how it is meant to be used/integrated in the code: is it to be instanced? Is it to be extended? Shall I use its children instead of it? How does it differ from a similarly named class in another Microsoft namespace and how can they work together, if they can?
All of this is missing from most of the framework documentation, leaving beginners with dozens of chunks of unrelated knowledge, there is no sense of unity, it is a disruption of the Force.
GCS d--(d+) s-/++ a C++++ U+++ P- L+@ E-- W++ N+ o+ K- w+++ O? M-- V? PS+ PE- Y+ PGP t+ 5? X R+++ tv-- b+(+++) DI+++ D++ G e++ h--- r+++ y+++* Weapons extension: ma- k++ F+2 X
|
|
|
|
|
I certainly agree that the documentation is about as much use as a chocolate fire-guard.
You always know you're really struggling when you have to resort to the MS docs!
Whenever you find yourself on the side of the majority, it is time to pause and reflect. - Mark Twain
|
|
|
|
|
And yet Win32 and CRT (older versions are increasingly better) documentation is as fine as it can be, to the point that when looking for documentation on CRT functions I very much refer to MSDN because of its overall better quality.
I think .NET has not been thought out properly and pushed out into production before it was ready. That's the reason of the many conflicting classes and namespaces, half baked hierachies and it lead to a dreadful documentation: how can anyone document something that is held together by duct tape, spit and faith?
GCS d--(d+) s-/++ a C++++ U+++ P- L+@ E-- W++ N+ o+ K- w+++ O? M-- V? PS+ PE- Y+ PGP t+ 5? X R+++ tv-- b+(+++) DI+++ D++ G e++ h--- r+++ y+++* Weapons extension: ma- k++ F+2 X
|
|
|
|
|
Not a problem here, I just ask Siri!
If you can keep your head while those about you are losing theirs, perhaps you don't understand the situation.
|
|
|
|
|
The documentation is reference documentation, not tutorials. For the latter you have to go elsewhere.
|
|
|
|
|
Windows API documentation does a much better job of explaining what has to be done. Therefore it is not a problem in the concept of documentation nor a MS design choice, it is simply crappy documentation.
Tutorials are dreadful, they are "how to do X: step A, step B, step C". Good, but if I need to do X' I'm screwed, because I still don't have the knowledge on how the system is supposed to work and how the pieces I am given interact between each other. With a tutorial I have a recipe that I can blindly follow and no more. I hate tutorials.
Besides, it is the producer's duty to explain how to use its product - when you buy a home appliance you have a manual explaining you how to use the product, you're not requested to find a tutorial written by a third party (which can be grossly wrong with no repercussions, by the way).
GCS d--(d+) s-/++ a C++++ U+++ P- L+@ E-- W++ N+ o+ K- w+++ O? M-- V? PS+ PE- Y+ PGP t+ 5? X R+++ tv-- b+(+++) DI+++ D++ G e++ h--- r+++ y+++* Weapons extension: ma- k++ F+2 X
|
|
|
|
|
And, of course, anyone and everyone is free to post their useless tutorials on the internet.
|
|
|
|
|
I appreciate that but when you come across an ambiguously named property, you really need something more useful than "X has a property called SomethingWhichCouldMeanSeveralDifferentThings" - Intellisense has already told us that.
Whenever you find yourself on the side of the majority, it is time to pause and reflect. - Mark Twain
|
|
|
|
|
True, but I think that is the exception rather than the default.
|
|
|
|
|
den2k88 wrote: Mostly I dislike the impossibility of separating function definitions and declaration in different files (like header and cpp). ... and to me, that is one of the essential improvements . I grew up with database normalization (and as normalization grew up - my first database course was on CODASYL bases, not relalational ), so it is in my genes: Don't represent the same information in two places - that is bound to one day lead to inconsistencies.
Quote: Second thing I don't like is the difficulty of casting between basic data types: I may want to load a byte stream, read some header and decide to treat the content as a short int stream. Again, to me a stricter type system is an improvement. C things like "while (1)" makes me shiver. This "implicit casting" (or rather: lack of type checking) is the source of a lot of bugs and problems.
|
|
|
|
|
den2k88 wrote: Mostly I dislike the impossibility of separating function definitions and declaration in different files (like header and cpp). I use the header as index into the cpp and I really find C# messier in that regard.
There's a class browser that lets you view all properties and functions of a given class, without showing the actual implementation, if that's all you're really after. There's also a dropdown at the top of the screen that's very similar. IMO, if you need a separate file as an "index" into the class, as you put it, then it's high time to refactor the class into something simpler.
I've done C++ for well over a decade before committing to C#, and I've never looked back. I don't miss headers at all. IMO headers just make you duplicate work that you can leave to the compiler to figure out.
|
|
|
|
|
SawmillTurtle wrote: My dislike of Microsoft comes from many years of opposing their policy So, blind hatred then.
I have used Microsoft products for years and it has always been my free choice. And they have never done my thinking for me; they offer options which I can accept or reject.
|
|
|
|
|
SawmillTurtle wrote: Do their thinking for them. Microsoft knows best. I find that interesting. They are the most open major software vendor. I've made a good career out of using their tools to make their own products much better. I feel like they give me more freedom than any other vendor. You have much fewer choices using apple than you do using Microsoft.
Everyone is born right handed. Only the strongest overcome it.
Fight for left-handed rights and hand equality.
|
|
|
|
|
Quote: You have much fewer choices using apple than you do using Microsoft
I'll give you that. Apple is one of the most dominating, controlling and unreasonable companies I've ever seen. You're going to spend, what, upwards of a thousand dollars (for the sake of brevity, let's say 1200) on an iPhone, yet Apple is going to tell you what you can and can't do with it? Can't download. Can't install unapproved software. Can't do this. Can't do that. And if you try to jailbreak it to open up your options, you risk bricking it and turning it into a 1200 dollar paperweight.
If I pay 1200 dollars on something, who are you to tell me what I can and can't do with it? For 1200 dollars, it had better be able to perform oo-mox on me while simultaneously pouring me shots of Kanar and singing "Bohemian Rhapsody" in Klingon (or any other language in which I order it to sing).
Apple is definitely the greater of the two evils.
|
|
|
|
|
SawmillTurtle wrote: who are you to tell me what I can and can't do with it? That actually does not bother me. It is their product, I think they should be able to make it be however they want.
Everyone is born right handed. Only the strongest overcome it.
Fight for left-handed rights and hand equality.
|
|
|
|
|
SawmillTurtle wrote: Take the Firewall in Windows 10. I use my own firewall most of the time, but for the longest time (not sure if it still does it anymore), if you turned it off, Windows would remind you that if you leave it off too long "we'll turn it back on for you."
Then use the tools for the big boys. They're called group policies.
Windows tries its best to protect users from themselves--remember, there's no worst threat to a computer's security than its users, and Windows is written for the unwashed masses. Remember what Windows was like before a default firewall was added to XP SP2. And remember what prompted the addition of a firewall.
|
|
|
|
|
Protecting users from themselves.
It's funny you should mention that. I read somewhere (though I can't remember where off the top of my head) that NTFS actually has the potential to be incredibly secure, but a lot of the security had to be watered down when the two branches of Windows merged and Windows NT/2000 became XP and the successor to-- ugh-- Windows ME.
Can't verify the accuracy of that because I don't remember the source, but I CAN give you a more concrete example: Linux. Linux is one of the most secure operating systems available, and for good reason. You can't wipe your nose without the system asking for administrator approval. When Linux became the platform of choice for Android, what happened? It had to be watered down for public consumption so that John Q Everyman wouldn't be inconvenienced by all those tiresome security checks.
It seems like the price that the public pays for convenience IS security. The more secure something is, the more it will pester you to verify what you're doing.
"Are you sure you want to install 'SUPER_HACKER_VIRUS_APP' from 'Youcannotreallybethisstupid.com?"
Why yes. Yes, I do.
Oh, no. My computer is on fire.
|
|
|
|
|
Convenience as always at odds with security. That much is a given.
And yes, you've come up with a great example. NTFS can be very secure with ACLs. But ACLs can be difficult to manage in the real world. And UAC is just MS locking down the OS so it's more like Linux.
And you're also absolutely right about Android having watered down Linux's built-in security for the sake of convenience. Android's gotta be one of the least secure systems you can run anything on these days.
|
|
|
|
|
SawmillTurtle wrote: My dislike of Microsoft comes from many years of opposing their policy of "Do their thinking for them. Microsoft knows best." It's not blind hatred. It's a lifetime of being told that I'm not smart enough.
It's an understandable attitude from Microsoft, because it's not "do their thinking for them" but the reality that most computer users are too non-technical (or just plain stupid) to do the thinking for themselves.
Do you think I want to guide my mom through arcane command line syntax in Linux to do something simple like set up a printer, which of course leads to the inevitable rabbit hole of updating drivers, which requires updating the OS, which requires updating all the dependencies? Hell no.
Latest Article - A Concise Overview of Threads
Learning to code with python is like learning to swim with those little arm floaties. It gives you undeserved confidence and will eventually drown you. - DangerBunny
Artificial intelligence is the only remedy for natural stupidity. - CDP1802
|
|
|
|
|
Marc Clifton wrote: Do you think I want to guide my mom through arcane command line syntax in Linux to do something simple like set up a printer, which of course leads to the inevitable rabbit hole of updating drivers, which requires updating the OS, which requires updating all the dependencies? Hell no. You sure have the gift of synthesis. That's my 10 years experience on Linux and why I no longer use it since 2012. Windows has its share of problems solvable only (or faster) with command line but they are rare.
GCS d--(d+) s-/++ a C++++ U+++ P- L+@ E-- W++ N+ o+ K- w+++ O? M-- V? PS+ PE- Y+ PGP t+ 5? X R+++ tv-- b+(+++) DI+++ D++ G e++ h--- r+++ y+++* Weapons extension: ma- k++ F+2 X
|
|
|
|
|
Teaching your mom command line syntax (or anyone's mom for that matter) really sounds like a Yabba Dabba Doo time. Reminds me of this time I installed Linux on this cheap Walmart computer I had, which piqued the interest of my cousin. He then insisted that I put it on his MOTHER'S computer, which I did. He lost his taste for it after he found that nothing he wanted to run would run in Linux. His mother wanted to know why she couldn't install and play The Sims. I was NOT about to try and fight with Wine in the hopes of getting the game to run for five to ten minutes (HOPEFULLY) before crashing.
Linux came off the computer, Windows went back on, and my aunt and cousin learned why Linux is an operating system for programmers and nerds. It was a colossal waste of time.
|
|
|
|