|
i tried to run the gradle build and it didnt work. pls send the working build script
|
# ? Aug 23, 2013 23:33 |
|
|
# ? Jun 5, 2024 05:03 |
|
Nomnom Cookie posted:if someone else is using it, ok...im not gonna be the one to set it up in maven tho it would be ez to setup in maven cause its just another jdk. you'd just switch the java_home that build runs w/. but all other builds would be normal.
|
# ? Aug 23, 2013 23:47 |
|
so we were talking about how c++ invites complexity in all the wrong places a page or two back and here's the best description of its issues:
from http://blog.greaterthanzero.com/post/58482859780/c-and-the-culture-of-complexity
|
# ? Aug 24, 2013 00:10 |
|
FamDav posted:so we were talking about how c++ invites complexity in all the wrong places a page or two back and here's the best description of its issues: The last footnote is interesting: quote:Anybody who has been around C++ since the mid-1990’s will have to admit that the amount of time and resources spent on discussing the C++ copy assignment operator, and the problems that it has caused in code, are absolutely staggering. I’ve heard people say that this has gotten better because of a new best practice recommendation to shun C-style pointers altogether and use shared_ptr instead, as the latter plays well with the assignment’s default behavior of memberwise copying. If this is indeed the new best practice, then we have the following situaion: we set out to decouple the OO paradigm from GC-supported reference semantics and combine it with the low-level efficiency of C. Instead, we’re now using shared_ptr, which gives us reference semantics supported by per-object reference counting. Compared to GC-supported reference semantics, reference semantics supported by per-object reference counting is I don't know enough about C++ to say if he's right or wrong, but it does sound very C++-like in looking at two alternatives, and choosing the worst parts of both.
|
# ? Aug 24, 2013 00:19 |
|
iirc the #1 goal of the c++ standard committee is don't pay for what you don't use. maybe the language is monstrous but you can turn off rtti and exceptions
|
# ? Aug 24, 2013 00:20 |
|
Nomnom Cookie posted:iirc the #1 goal of the c++ standard committee is don't pay for what you don't use. maybe the language is monstrous but you can turn off rtti and exceptions yep, this ruthlessness is a big part of the reason that there are many problems with c++, but also the reason why there is still no mature language that can do what c++ does blog post is spot on though
|
# ? Aug 24, 2013 00:25 |
|
PleasingFungus posted:The last footnote is interesting: his premise is flawed. we should use shared/unique_ptr instead of pointers, but we should not use pointers when alternatives present themselves. the point of shared_ptr/unique_ptr is not give you something "stronger" than c pointers; theyre meant to encapsulate the two most common uses of pointers in ways that play nicely with RAII and conform to our understanding that variables going out of scope get taken care of correctly. side problem: every bit of intuition you should have about a block of c++ code can be easily undone, and accidentally.
|
# ? Aug 24, 2013 01:37 |
|
there should be a class polymorphic<T> which contains a pointer to something of base type T that copies correctly for assignment so you can use polymorphic types transparently in classes edit: god i wish you could overload the dot operator in c++. just force it to evaluate to a reference like how arrow has to evaluate to a pointer eventually.
|
# ? Aug 24, 2013 01:52 |
|
Nomnom Cookie posted:iirc the #1 goal of the c++ standard committee is don't pay for what you don't use. maybe the language is monstrous but you can turn off rtti and exceptions that's just the runtime cost, though. doesn't mean it can't take forever to compile, or that a typo won't give you five pages of garbage errors, or even make your code do something different and wrong because they only have so much syntax to work with here.
|
# ? Aug 24, 2013 01:54 |
|
seriously, as a dumb baby, refactoring c++ is Not Nice. you have a minefield of corner cases that you hope people were not stupid enough to use. but they did, and you can't tell at a glance. this isn't an excuse not to test or do code reviews or whatever but there are like 4+ languages in there that you may or may not be using. choice requires discipline to not be poo poo. you know the thing that programmers hate hate hate hate because its such a contrast to the freedom and power to being able to go from nothing to something in practically no time.
|
# ? Aug 24, 2013 02:28 |
|
it's as easy to dump on c++ as it is to make fun of php or perl. my biggest gripe is that it's almost impossible to parse. oh sure, c committed the original sin of needing name binding information to parse, but c++ ramps that all the way up to needing type check everything as it is parsed. and on top of that, it's still ambiguous, and you have to speculatively parse things and backtrack when it doesn't work out Brain Candy posted:you have a minefield of corner cases that you hope people were not stupid enough to use. but they did, and you can't tell at a glance. it's impossible to do safe refactoring of c++. rename a function? oops, it was called in a template somewhere, and a refactoring engine can't know that those two names were meant to be the same, since it was resolved at the template instantiation site via koenig lookup.
|
# ? Aug 24, 2013 02:56 |
|
you know, when I started this project, this whole notion of using object oriented programming even though we were using C with static memory allocation kind of annoyed me, but now I really, really hate it and wish I had had a choice not to use it for anyone wondering wtf object oriented C is, just imagine shitload of structs full of function pointers, and then sometimes to do abstraction you typecast one struct full of function pointers and variables to another one and of course in all of the functions it has to check that the structs mapped correctly and the functions got mapped into the structs full of function pointers by an init function somewhere this was all done in the name of maintainability and future proofing but of course it's turned the code into this massive, difficult to understand blob because something like >50% of the lines of code are essentially "busy work" to try and make it do an object oriented dance that does nothing but make it more difficult to understand, because the actual place where a thing happens is buried 15 functions calls and function macros deep. the worst part is it was too late to change it when I joined the project, and it's way too late to change it now. you can't help me now, but let my life be lesson to you: Just because you can make a UML diagram of it, that doesn't necessarily make it a good, sustainable design.
|
# ? Aug 24, 2013 03:19 |
|
i know this after the fact, but did you guys ever take a look at cello?
|
# ? Aug 24, 2013 03:41 |
|
DuckConference, sorry about your lots, language mismatch is such awful poo poo. has UML ever been useful to anyone ever? why would anyone, except for managers/"architects" so they can pretend they had useful input, want to put code design in two places? seems like its dumb cs 101 comments all over again
|
# ? Aug 24, 2013 03:46 |
|
FamDav posted:i know this after the fact, but did you guys ever take a look at cello? just plain C with a decent set of coding standards and maybe some OO-inspired structural rules would have been just fine. that's the worst part, what the code actually needs to do ultimately isn't THAT complex. you can't do a complete build without using a decent number of python scripts, some of which are 3.x and some of which are 2.x, but it's okay I guess because the 2.x ones only work in linux and the IDE is windows-only anyway. when I actually type this out it sounds so much worse. EDIT: to clarify the scripts call an external tool which is linux-only. We were unable to create another working installation of the tool when we tried earlier this week so in the meantime I'm just using my coworker's VM image (which he doesn't remember how he modified to get the tool to install and run properly) big shtick energy fucked around with this message at 04:10 on Aug 24, 2013 |
# ? Aug 24, 2013 04:00 |
|
wait is this an actual real world project or is this something youre doing for school this is important
|
# ? Aug 24, 2013 04:15 |
|
Brain Candy posted:DuckConference, sorry about your lots, language mismatch is such awful poo poo. I think high level designs need to be somewhere so you can explain how it works without having to dive into code. It's just another part of the necessary documentation for the project. That being said, just like normal comments you have to be vigilant that if the code changes you need to update the diagrams.
|
# ? Aug 24, 2013 05:11 |
|
DuckConference posted:just imagine shitload of structs full of function pointers, and then sometimes to do abstraction you typecast one struct full of function pointers and variables to another one and of course in all of the functions it has to check that the structs mapped correctly and the functions got mapped into the structs full of function pointers by an init function somewhere
|
# ? Aug 24, 2013 05:41 |
|
Seriously idk what you're so upset about, bring in some c++ templates and macros to capture your repeating patterns and go on your merry way What were you saying about only static memory though
|
# ? Aug 24, 2013 05:56 |
|
I'm convinced that people who poo poo on C++ are all dumb. This isn't because C++ is great, it's just that every time you see somebody complain about C++, it turns out that they only give specious arguments and vapid blather. What's the probability that we'll ever come across an existential C++ rant that isn't written by a dumb person? I'd say 0.3% right now. What really happens when people make complaints like this? It's people seeing others doing stuff they don't understand, because they're too new or too stupid, and assume somebody else is the problem. Look at the complaint about rvalue references. This person can't see rvalue references improving people's lives and the robustness of programs, because he's ignorant and doesn't know what he's talking about. Another recent rant about C++ was done by the 0mq guy. Anybody who's looked at the 0mq source code can tell you that it's complete poo poo, and it's not C++'s fault. Here is the real fact about C++: It's not about C++. It's about making a language suitable for efficiently writing non-garbage collected efficient programs. If and when C++ sees a suitable replacement, it'll be a language that is at least as complicated. It might lose a few superficial complications that C++ has, thanks to its C legacy, but the superficial complications are not the real problem that C++ has or that C++ programmers have. It's the problem of writing code without garbage collection itself, and C++ only helps.
|
# ? Aug 24, 2013 06:43 |
|
agreed
|
# ? Aug 24, 2013 06:57 |
|
Gazpacho posted:Seriously idk what you're so upset about, bring in some c++ templates and macros to capture your repeating patterns and go on your merry way it's a microcontroller with pretty limited RAM so memory allocation is always static. well, you still have a stack, but there's no dynamic memory allocation, your "objects" and buffers and such are all statically allocated. that part I have no problem with because it makes sense and it's the way I've always done it on microcontrollers and no this is not a student project, this is my job, and this is the code for the company's most important product. if the product fails, I don't know if I'll even still have a job
|
# ? Aug 24, 2013 08:15 |
|
shrughes posted:I'm convinced that people who poo poo on C++ are all dumb. This isn't because C++ is great, it's just that every time you see somebody complain about C++, it turns out that they only give specious arguments and vapid blather. What's the probability that we'll ever come across an existential C++ rant that isn't written by a dumb person? I'd say 0.3% right now. lol why don't you go gently caress yourself. here's is real fact, it is a language with warts from being formed over decades. there are some people who think c++ has problems, called the standards committee, you arrogant poo poo turd.
|
# ? Aug 24, 2013 09:51 |
|
Brain Candy posted:lol why don't you go gently caress yourself. here's is real fact, it is a language with warts from being formed over decades. there are some people who think c++ has problems, called the standards committee, you arrogant poo poo turd.
|
# ? Aug 24, 2013 10:15 |
|
Brain Candy posted:lol why don't you go gently caress yourself. here's is real fact, it is a language with warts from being formed over decades. there are some people who think c++ has problems, called the standards committee, you arrogant poo poo turd. the biggest problem with c++ is the people who write c++
|
# ? Aug 24, 2013 10:40 |
|
Brain Candy posted:lol why don't you go gently caress yourself. here's is real fact, it is a language with warts from being formed over decades. there are some people who think c++ has problems, called the standards committee, you arrogant poo poo turd. Keep nastygrams out of the PL megathread. Please edit your post to follow the standard laid out in http://www.defmacro.org/2013/04/03/issue-etiquette.html.
|
# ? Aug 24, 2013 11:09 |
|
shrughes posted:I'm convinced that people who poo poo on C++ are all dumb. This isn't because C++ is great, it's just that every time you see somebody complain about C++, it turns out that they only give specious arguments and vapid blather. What's the probability that we'll ever come across an existential C++ rant that isn't written by a dumb person? I'd say 0.3% right now. cite your quotes
|
# ? Aug 24, 2013 16:09 |
|
edit: this isn't about the current discussion its just something neat i found in Qt5 you can now easily work around having to use QSignalMappers to map multiple signals to the same slot, and then distinguish between the senders in the slot. the only setup you need is the usual enum or group of strings that will be used to distinguish the senders, then in the connect call you can you use the new connect syntax to connect directly to a member function, which you bind the identifier to. C++ code:
that replaces the old way of C++ code:
this is using qt5 and c++11, so expect to see this nice new syntax in production sometime in 2030
|
# ? Aug 24, 2013 16:15 |
|
shrughes posted:I'm convinced that people who poo poo on C++ are all dumb. This isn't because C++ is great, it's just that every time you see somebody complain about C++, it turns out that they only give specious arguments and vapid blather. What's the probability that we'll ever come across an existential C++ rant that isn't written by a dumb person? I'd say 0.3% right now. source your quotes. like this, here are some sourced quotes: http://port70.net/~nsz/16_c++.html
|
# ? Aug 24, 2013 16:32 |
|
the 2nd point on that page is factually wrong so i didn't read the rest
|
# ? Aug 24, 2013 16:34 |
|
Posting Principle posted:the 2nd point on that page is factually wrong so i didn't read the rest some of the quotes are pretty interesting, but i don't know enough to judge their quality. how's this one? quote: Brian Kernighan (2000) [..] Sometimes I do write C++ instead of C. C++ I think is basically too big a language, although there's a reason for almost everything that's in it. When I write a C program of any size, I probably will wind-up using 75, 80, 90% of the language features. In other words, most of the language is useful in almost any kind of program. By contrast, if I write in C++ I probably don't use even 10% of the language, and in fact the other 90% I don't think I understand. In that sense I would argue that C++ is too big, but C++ does give you may of the things that you need to write big programs: it does really make it possible for you to create objects, to protect the internal representation of information so that it presents a nice facade that you can't look behind. C++ has an enormous amount of mechanism that I think is very useful, and that C doesn't give you. [..] [..] The languages that succeed are very pragmatic, and are very often fairly dirty because they try to solve real problems. C++ is a great example of a language that in many ways has serious flaws. One of the flaws is that it tried very hard to be compatible with C: compatible at the object level, compatible very closely at the source level. Because of this there are places where there's something ugly in the language, weird syntactic problems, strange semantic behaviors. In one sense this is bad, and nobody should ever do that, but one of the reasons that C++ succeeded was precisely that it was compatible with C, it was able to use the C libraries, it was usable by the base of existing C programmers, and therefore people could back into it and use it fairly effectively without having to buy into a whole new way of doing business. And this is not the case for ML, which was being done at about the same time and, at least partly, in almost the same place, but which took a very different view of the world. As a pragmatic thing, C++ is extremely successful but it paid a certain price by being compatible with the previous language. [..]
|
# ? Aug 24, 2013 16:49 |
|
that's a good quote, but theres deffo some crud in that link. it links esr. and like Posting Principle pointed out, the second bullet point is basically that things that were added in c++0xb are missing.
Brain Candy fucked around with this message at 17:17 on Aug 24, 2013 |
# ? Aug 24, 2013 17:11 |
|
That's a good quote by Knuth, but he rightly points out that you don't need the entirety of C++ to write programs. Like the FQA, that page convinces me even further that the people who complain most about C++ have a big crossover with bitcoiners. "I don't understand
|
# ? Aug 24, 2013 17:24 |
|
i like the quote from scott meyersDAT NIGGA SCOTT MEYERS posted:I'd like to answer this question with "complexity, complexity, complexity!", but naming the same thing three times is cheating. Still, I think that C++'s greatest weakness is complexity. For almost every rule in C++, there are exceptions, and often there are exceptions to the exceptions. For example, const objects can't be modified, unless you cast away their constness, in which case they can, unless they were originally defined to be const, in which case the attempted modifications yield undefined behavior. his complaints (and mine) have nothing to do with the inherent complexity of dealing with unmanaged code. its the poorly thought out features that were put on top or next to other poorly thought out features that force exceptions to exceptions and unintuitive behavior when composed together. rust has inherent complexity. there are three different pointer types and associated rules for what happens you use and them pass them around. but these rules are clear, are lacking in exceptions to rules, and compose well with the other features of the language. these are exactly the things missing from c++ and what any sane person who works in it every day should complain about.
|
# ? Aug 24, 2013 17:38 |
|
FamDav posted:i like the quote from scott meyers does rust have behaviors that are "undefined" and can be handled different ways by different compilers?
|
# ? Aug 24, 2013 17:44 |
|
Posting Principle posted:That's a good quote by Knuth, but he rightly points out that you don't need the entirety of C++ to write programs. Like the FQA, that page convinces me even further that the people who complain most about C++ have a big crossover with bitcoiners. i prefer the quotes where it's not "this is a bad language", but "i don't like this language for this reason". i usually suspect the extreme opinion-havers are wildly overstating things, possibly for humorous effect
|
# ? Aug 24, 2013 17:46 |
|
rust has unsafe { ... } which are blocks where you are allowed to do things like dereference a c-like pointer, so you run into the same issue of dereferencing an invalid pointer. otherwise, no, there is no undefined behavior*. some things have unspecified results which are dependent on what the processor does for certain kinds of arithmetic operations. http://static.rust-lang.org/doc/rust.html#unsafe-functions *the language is still in flux and so nobody has really cared to rigorously check that this is true
|
# ? Aug 24, 2013 17:57 |
holy moley rubygems is loving retarded. I never really thought about it but if you wanna name your gem the same thing as another that's on there already, welp gotta come up with another name even if the existing same named gem hasn't been updated for two years or more
|
|
# ? Aug 24, 2013 19:37 |
|
|
# ? Aug 24, 2013 19:48 |
|
|
# ? Jun 5, 2024 05:03 |
|
Also it's for Ruby.
|
# ? Aug 24, 2013 20:34 |