Skip to main content

APEX Discussed on Reddit

This thread (language NSFW) on Reddit discusses Oracle's decision to sue Google - and APEX gets some discussion about 2-3 pages down!

Unfortunately, most of the comments are just plain wrong.  I understand that people are entitled to their opinions, but when things are misstated, that's another issue entirely.  I think this is proof that most developers - Oracle and non-Oracle - simply don't know what APEX is and what it can & can't do.


Morten Braten said…
Sigh... yes, there are some pretty clueless comments about Apex in that thread (and the readers of this blog probably already know that, but I need to vent and I can't be bothered to post a comment on Reddit):

* "You cannot have more than 10 tables shown on the same page." [Just plain wrong, did this guy pull a random number out of his behind?]

* "You cannot change the template for your pages after creating your project." [Again, wrong. Guess he gave up before he found the select list called "Page Template".]

* "The source code ends up in a database, so version control becomes a nightmare." [Nah. PL/SQL packages and the application export script are plain text files. Last time I checked, most version control systems could handle plain text files just fine.]

* "Point and click programming... shudder". [Ah yes, why would I save time by pointing and clicking, instead of spending my time writing reams of "real" code?]

And then there is this guy who complains

"[Apex] is needlessly limited. I am not trying to develop a database app, I am trying to solve a given problem."

And goes on to explain that:

"In my experience, succesfull applications have a tendency to grow in unexpected directions. If you use apex, you have severily limited your ability to grow your application, because it cannot ever become anythin other than a database application. In other words, it might not so much be a problem with apex as a way to develop database applications, as a problem with the very concept of a database application."

It would really help if he gave some examples of the kinds of conceptual problems he fears running into, instead of some vague, unspecified future threat.

Because it turns out that his real problem was rather more prosaic:

"...what we did with apex was not particularily fancy. But we did have major problems with one page that was intended to basically show data from a single table (view actually), in tabular form."

I'm sure someone on the Apex discussion forum could help him out with that one...

In my experience, the vast majority of companies can solve their common business problems with data-centric business applications (a.k.a. "database applications"). And for this type of application, Apex is great. If the customer already has an Oracle database, and you happen to be proficient with SQL and PL/SQL, that makes Apex a perfect tool for you.

Go Apex! :-)

- Morten
Scott said…
The "unexpected directions" comment was my favorite. Sure, there will be unanticipated features and things that you didn't think of, but I've never had a CRM system, say, end up being a video game or GPS system.

A little planning goes a long way - with APEX or any other technology.

- Scott -

Popular posts from this blog

Logging APEX Report Downloads

A customer recently asked how APEX could track who clicked “download” from an Interactive Grid.  After some quick searching of the logs, I realized that APEX simply does not record this type of activity, aside from a simple page view type of “AJAX” entry.  This was not specific enough, and of course, led to the next question - can we prevent users from downloading data from a grid entirely?

I knew that any Javascript-based solution would fall short of their security requirements, since it is trivial to reconstruct the URL pattern required to initiate a download, even if the Javascript had removed the option from the menu.  Thus, I had to consider a PL/SQL-based approach - one that could not be bypassed by a malicious end user.

To solve this problem, I turned to APEX’s Initialization PL/SQL Code parameter.  Any PL/SQL code entered in this region will be executed before any other APEX-related process.  Thus, it is literally the first place that a developer can interact with an APEX page…

Custom Export to CSV

It's been a while since I've updated my blog. I've been quite busy lately, and just have not had the time that I used to. We're expecting our 1st child in just a few short weeks now, so most of my free time has been spent learning Lamaze breathing, making the weekly run to Babies R Us, and relocating my office from the larger room upstairs to the smaller one downstairs - which I do happen to like MUCH more than I had anticipated. I have everything I need within a short walk - a bathroom, beer fridge, and 52" HD TV. I only need to go upstairs to eat and sleep now, but alas, this will all change soon...

Recently, I was asked if you could change the way Export to CSV in ApEx works. The short answer is, of course, no. But it's not too difficult to "roll your own" CSV export procedure.

Why would you want to do this? Well, the customer's requirement was to manipulate some data when the Export link was clicked, and then export it to CSV in a format…

Refreshing PL/SQL Regions in APEX

If you've been using APEX long enough, you've probably used a PL/SQL Region to render some sort of HTML that the APEX built-in components simply can't handle. Perhaps a complex chart or region that has a lot of custom content and/or layout. While best practices may be to use an APEX component, or if not, build a plugin, we all know that sometimes reality doesn't give us that kind of time or flexibility.While the PL/SQL Region is quite powerful, it still lacks a key feature: the ability to be refreshed by a Dynamic Action. This is true even in APEX 5. Fortunately, there's a simple workaround that only requires a small change to your code: change your procedure to a function and call it from a Classic Report region.In changing your procedure to a function, you'll likely only need to make one type of change: converting and htp.prn calls to instead populate and return a variable at the end of the function. Most, if not all of the rest of the code can remain un…